<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><link rel="stylesheet" type="text/css" href="style.css" /><script type="text/javascript" src="highlight.js"></script></head><body><pre><span class="hs-pragma">{-# LANGUAGE CPP #-}</span><span>
</span><span id="line-2"></span><span class="hs-pragma">{-# LANGUAGE LambdaCase #-}</span><span>
</span><span id="line-3"></span><span>
</span><span id="line-4"></span><span class="hs-pragma">{-# OPTIONS_GHC -Wno-incomplete-record-updates #-}</span><span>
</span><span id="line-5"></span><span>
</span><span id="line-6"></span><span class="hs-comment">-- | This module implements interface renaming, which is</span><span>
</span><span id="line-7"></span><span class="hs-comment">-- used to rewrite interface files on the fly when we</span><span>
</span><span id="line-8"></span><span class="hs-comment">-- are doing indefinite typechecking and need instantiations</span><span>
</span><span id="line-9"></span><span class="hs-comment">-- of modules which do not necessarily exist yet.</span><span>
</span><span id="line-10"></span><span>
</span><span id="line-11"></span><span class="hs-keyword">module</span><span> </span><span class="hs-identifier">GHC.Iface.Rename</span><span> </span><span class="hs-special">(</span><span>
</span><span id="line-12"></span><span>    </span><span class="annot"><a href="GHC.Iface.Rename.html#rnModIface"><span class="hs-identifier">rnModIface</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-13"></span><span>    </span><span class="annot"><a href="GHC.Iface.Rename.html#rnModExports"><span class="hs-identifier">rnModExports</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-14"></span><span>    </span><span class="annot"><a href="GHC.Iface.Rename.html#tcRnModIface"><span class="hs-identifier">tcRnModIface</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-15"></span><span>    </span><span class="annot"><a href="GHC.Iface.Rename.html#tcRnModExports"><span class="hs-identifier">tcRnModExports</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-16"></span><span>    </span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span class="hs-cpp">

#include &quot;HsVersions.h&quot;
</span><span>
</span><span id="line-20"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Prelude.html"><span class="hs-identifier">GHC.Prelude</span></a></span><span>
</span><span id="line-21"></span><span>
</span><span id="line-22"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html"><span class="hs-identifier">GHC.Types.SrcLoc</span></a></span><span>
</span><span id="line-23"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html"><span class="hs-identifier">GHC.Utils.Outputable</span></a></span><span>
</span><span id="line-24"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Driver.Types.html"><span class="hs-identifier">GHC.Driver.Types</span></a></span><span>
</span><span id="line-25"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Unit.html"><span class="hs-identifier">GHC.Unit</span></a></span><span>
</span><span id="line-26"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html"><span class="hs-identifier">GHC.Types.Unique.FM</span></a></span><span>
</span><span id="line-27"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Avail.html"><span class="hs-identifier">GHC.Types.Avail</span></a></span><span>
</span><span id="line-28"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Iface.Syntax.html"><span class="hs-identifier">GHC.Iface.Syntax</span></a></span><span>
</span><span id="line-29"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.FieldLabel.html"><span class="hs-identifier">GHC.Types.FieldLabel</span></a></span><span>
</span><span id="line-30"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Var.html"><span class="hs-identifier">GHC.Types.Var</span></a></span><span>
</span><span id="line-31"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Utils.Error.html"><span class="hs-identifier">GHC.Utils.Error</span></a></span><span>
</span><span id="line-32"></span><span>
</span><span id="line-33"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Name.html"><span class="hs-identifier">GHC.Types.Name</span></a></span><span>
</span><span id="line-34"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Tc.Utils.Monad.html"><span class="hs-identifier">GHC.Tc.Utils.Monad</span></a></span><span>
</span><span id="line-35"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Utils.Misc.html"><span class="hs-identifier">GHC.Utils.Misc</span></a></span><span>
</span><span id="line-36"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Utils.Fingerprint.html"><span class="hs-identifier">GHC.Utils.Fingerprint</span></a></span><span>
</span><span id="line-37"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Basic.html"><span class="hs-identifier">GHC.Types.Basic</span></a></span><span>
</span><span id="line-38"></span><span>
</span><span id="line-39"></span><span class="hs-comment">-- a bit vexing</span><span>
</span><span id="line-40"></span><span class="hs-keyword">import</span><span> </span><span class="hs-pragma">{-# SOURCE</span><span> </span><span class="hs-pragma">#-}</span><span> </span><span class="annot"><a href="GHC.Iface.Load.html"><span class="hs-identifier">GHC.Iface.Load</span></a></span><span>
</span><span id="line-41"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Driver.Session.html"><span class="hs-identifier">GHC.Driver.Session</span></a></span><span>
</span><span id="line-42"></span><span>
</span><span id="line-43"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="annot"><a href="../../base/src/Data.Traversable.html#"><span class="hs-identifier">Data.Traversable</span></a></span><span> </span><span class="hs-keyword">as</span><span> </span><span class="annot"><span class="hs-identifier">T</span></span><span>
</span><span id="line-44"></span><span>
</span><span id="line-45"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Data.Bag.html"><span class="hs-identifier">GHC.Data.Bag</span></a></span><span>
</span><span id="line-46"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.IORef.html#"><span class="hs-identifier">Data.IORef</span></a></span><span>
</span><span id="line-47"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Name.Shape.html"><span class="hs-identifier">GHC.Types.Name.Shape</span></a></span><span>
</span><span id="line-48"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Iface.Env.html"><span class="hs-identifier">GHC.Iface.Env</span></a></span><span>
</span><span id="line-49"></span><span>
</span><span id="line-50"></span><span id="local-6989586621681090136"><span class="annot"><a href="GHC.Iface.Rename.html#tcRnMsgMaybe"><span class="hs-identifier hs-type">tcRnMsgMaybe</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Data.Either.html#Either"><span class="hs-identifier hs-type">Either</span></a></span><span> </span><span class="annot"><a href="GHC.Utils.Error.html#ErrorMessages"><span class="hs-identifier hs-type">ErrorMessages</span></a></span><span> </span><span class="annot"><a href="#local-6989586621681090136"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Tc.Types.html#TcM"><span class="hs-identifier hs-type">TcM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621681090136"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-51"></span><span id="tcRnMsgMaybe"><span class="annot"><span class="annottext">tcRnMsgMaybe :: forall a. IO (Either ErrorMessages a) -&gt; TcM a
</span><a href="GHC.Iface.Rename.html#tcRnMsgMaybe"><span class="hs-identifier hs-var hs-var">tcRnMsgMaybe</span></a></span></span><span> </span><span id="local-6989586621681089538"><span class="annot"><span class="annottext">IO (Either ErrorMessages a)
</span><a href="#local-6989586621681089538"><span class="hs-identifier hs-var">do_this</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-52"></span><span>    </span><span id="local-6989586621681089537"><span class="annot"><span class="annottext">Either ErrorMessages a
</span><a href="#local-6989586621681089537"><span class="hs-identifier hs-var">r</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">IO (Either ErrorMessages a)
-&gt; IOEnv (Env TcGblEnv TcLclEnv) (Either ErrorMessages a)
forall (m :: * -&gt; *) a. MonadIO m =&gt; IO a -&gt; m a
</span><a href="../../base/src/Control.Monad.IO.Class.html#liftIO"><span class="hs-identifier hs-var">liftIO</span></a></span><span> </span><span class="annot"><span class="annottext">(IO (Either ErrorMessages a)
 -&gt; IOEnv (Env TcGblEnv TcLclEnv) (Either ErrorMessages a))
-&gt; IO (Either ErrorMessages a)
-&gt; IOEnv (Env TcGblEnv TcLclEnv) (Either ErrorMessages a)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">IO (Either ErrorMessages a)
</span><a href="#local-6989586621681089538"><span class="hs-identifier hs-var">do_this</span></a></span><span>
</span><span id="line-53"></span><span>    </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Either ErrorMessages a
</span><a href="#local-6989586621681089537"><span class="hs-identifier hs-var">r</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-54"></span><span>        </span><span class="annot"><a href="../../base/src/Data.Either.html#Left"><span class="hs-identifier hs-type">Left</span></a></span><span> </span><span id="local-6989586621681089535"><span class="annot"><span class="annottext">ErrorMessages
</span><a href="#local-6989586621681089535"><span class="hs-identifier hs-var">errs</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-55"></span><span>            </span><span class="annot"><span class="annottext">Messages -&gt; TcRn ()
</span><a href="GHC.Tc.Utils.Monad.html#addMessages"><span class="hs-identifier hs-var">addMessages</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ErrorMessages
forall a. Bag a
</span><a href="GHC.Data.Bag.html#emptyBag"><span class="hs-identifier hs-var">emptyBag</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ErrorMessages
</span><a href="#local-6989586621681089535"><span class="hs-identifier hs-var">errs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-56"></span><span>            </span><span class="annot"><span class="annottext">TcM a
forall env a. IOEnv env a
</span><a href="GHC.Data.IOEnv.html#failM"><span class="hs-identifier hs-var">failM</span></a></span><span>
</span><span id="line-57"></span><span>        </span><span class="annot"><a href="../../base/src/Data.Either.html#Right"><span class="hs-identifier hs-type">Right</span></a></span><span> </span><span id="local-6989586621681089531"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621681089531"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">a -&gt; TcM a
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621681089531"><span class="hs-identifier hs-var">x</span></a></span><span>
</span><span id="line-58"></span><span>
</span><span id="line-59"></span><span class="annot"><a href="GHC.Iface.Rename.html#tcRnModIface"><span class="hs-identifier hs-type">tcRnModIface</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Module.Name.html#ModuleName"><span class="hs-identifier hs-type">ModuleName</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Module"><span class="hs-identifier hs-type">Module</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="GHC.Tc.Types.html#NameShape"><span class="hs-identifier hs-type">NameShape</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Driver.Types.html#ModIface"><span class="hs-identifier hs-type">ModIface</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Tc.Types.html#TcM"><span class="hs-identifier hs-type">TcM</span></a></span><span> </span><span class="annot"><a href="GHC.Driver.Types.html#ModIface"><span class="hs-identifier hs-type">ModIface</span></a></span><span>
</span><span id="line-60"></span><span id="tcRnModIface"><span class="annot"><span class="annottext">tcRnModIface :: [(ModuleName, Module)]
-&gt; Maybe NameShape -&gt; ModIface -&gt; TcM ModIface
</span><a href="GHC.Iface.Rename.html#tcRnModIface"><span class="hs-identifier hs-var hs-var">tcRnModIface</span></a></span></span><span> </span><span id="local-6989586621681089530"><span class="annot"><span class="annottext">[(ModuleName, Module)]
</span><a href="#local-6989586621681089530"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621681089529"><span class="annot"><span class="annottext">Maybe NameShape
</span><a href="#local-6989586621681089529"><span class="hs-identifier hs-var">y</span></a></span></span><span> </span><span id="local-6989586621681089528"><span class="annot"><span class="annottext">ModIface
</span><a href="#local-6989586621681089528"><span class="hs-identifier hs-var">z</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-61"></span><span>    </span><span id="local-6989586621681089527"><span class="annot"><span class="annottext">HscEnv
</span><a href="#local-6989586621681089527"><span class="hs-identifier hs-var">hsc_env</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">TcRnIf TcGblEnv TcLclEnv HscEnv
forall gbl lcl. TcRnIf gbl lcl HscEnv
</span><a href="GHC.Tc.Utils.Monad.html#getTopEnv"><span class="hs-identifier hs-var">getTopEnv</span></a></span><span>
</span><span id="line-62"></span><span>    </span><span class="annot"><span class="annottext">IO (Either ErrorMessages ModIface) -&gt; TcM ModIface
forall a. IO (Either ErrorMessages a) -&gt; TcM a
</span><a href="GHC.Iface.Rename.html#tcRnMsgMaybe"><span class="hs-identifier hs-var">tcRnMsgMaybe</span></a></span><span> </span><span class="annot"><span class="annottext">(IO (Either ErrorMessages ModIface) -&gt; TcM ModIface)
-&gt; IO (Either ErrorMessages ModIface) -&gt; TcM ModIface
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">HscEnv
-&gt; [(ModuleName, Module)]
-&gt; Maybe NameShape
-&gt; ModIface
-&gt; IO (Either ErrorMessages ModIface)
</span><a href="GHC.Iface.Rename.html#rnModIface"><span class="hs-identifier hs-var">rnModIface</span></a></span><span> </span><span class="annot"><span class="annottext">HscEnv
</span><a href="#local-6989586621681089527"><span class="hs-identifier hs-var">hsc_env</span></a></span><span> </span><span class="annot"><span class="annottext">[(ModuleName, Module)]
</span><a href="#local-6989586621681089530"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe NameShape
</span><a href="#local-6989586621681089529"><span class="hs-identifier hs-var">y</span></a></span><span> </span><span class="annot"><span class="annottext">ModIface
</span><a href="#local-6989586621681089528"><span class="hs-identifier hs-var">z</span></a></span><span>
</span><span id="line-63"></span><span>
</span><span id="line-64"></span><span class="annot"><a href="GHC.Iface.Rename.html#tcRnModExports"><span class="hs-identifier hs-type">tcRnModExports</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Module.Name.html#ModuleName"><span class="hs-identifier hs-type">ModuleName</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Module"><span class="hs-identifier hs-type">Module</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Driver.Types.html#ModIface"><span class="hs-identifier hs-type">ModIface</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Tc.Types.html#TcM"><span class="hs-identifier hs-type">TcM</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Types.Avail.html#AvailInfo"><span class="hs-identifier hs-type">AvailInfo</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-65"></span><span id="tcRnModExports"><span class="annot"><span class="annottext">tcRnModExports :: [(ModuleName, Module)] -&gt; ModIface -&gt; TcM [AvailInfo]
</span><a href="GHC.Iface.Rename.html#tcRnModExports"><span class="hs-identifier hs-var hs-var">tcRnModExports</span></a></span></span><span> </span><span id="local-6989586621681089525"><span class="annot"><span class="annottext">[(ModuleName, Module)]
</span><a href="#local-6989586621681089525"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621681089524"><span class="annot"><span class="annottext">ModIface
</span><a href="#local-6989586621681089524"><span class="hs-identifier hs-var">y</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-66"></span><span>    </span><span id="local-6989586621681089523"><span class="annot"><span class="annottext">HscEnv
</span><a href="#local-6989586621681089523"><span class="hs-identifier hs-var">hsc_env</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">TcRnIf TcGblEnv TcLclEnv HscEnv
forall gbl lcl. TcRnIf gbl lcl HscEnv
</span><a href="GHC.Tc.Utils.Monad.html#getTopEnv"><span class="hs-identifier hs-var">getTopEnv</span></a></span><span>
</span><span id="line-67"></span><span>    </span><span class="annot"><span class="annottext">IO (Either ErrorMessages [AvailInfo]) -&gt; TcM [AvailInfo]
forall a. IO (Either ErrorMessages a) -&gt; TcM a
</span><a href="GHC.Iface.Rename.html#tcRnMsgMaybe"><span class="hs-identifier hs-var">tcRnMsgMaybe</span></a></span><span> </span><span class="annot"><span class="annottext">(IO (Either ErrorMessages [AvailInfo]) -&gt; TcM [AvailInfo])
-&gt; IO (Either ErrorMessages [AvailInfo]) -&gt; TcM [AvailInfo]
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">HscEnv
-&gt; [(ModuleName, Module)]
-&gt; ModIface
-&gt; IO (Either ErrorMessages [AvailInfo])
</span><a href="GHC.Iface.Rename.html#rnModExports"><span class="hs-identifier hs-var">rnModExports</span></a></span><span> </span><span class="annot"><span class="annottext">HscEnv
</span><a href="#local-6989586621681089523"><span class="hs-identifier hs-var">hsc_env</span></a></span><span> </span><span class="annot"><span class="annottext">[(ModuleName, Module)]
</span><a href="#local-6989586621681089525"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">ModIface
</span><a href="#local-6989586621681089524"><span class="hs-identifier hs-var">y</span></a></span><span>
</span><span id="line-68"></span><span>
</span><span id="line-69"></span><span id="local-6989586621681090111"><span class="annot"><a href="GHC.Iface.Rename.html#failWithRn"><span class="hs-identifier hs-type">failWithRn</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#ShIfM"><span class="hs-identifier hs-type">ShIfM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621681090111"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-70"></span><span id="failWithRn"><span class="annot"><span class="annottext">failWithRn :: forall a. SDoc -&gt; ShIfM a
</span><a href="GHC.Iface.Rename.html#failWithRn"><span class="hs-identifier hs-var hs-var">failWithRn</span></a></span></span><span> </span><span id="local-6989586621681089515"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681089515"><span class="hs-identifier hs-var">doc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-71"></span><span>    </span><span id="local-6989586621681089514"><span class="annot"><span class="annottext">IORef ErrorMessages
</span><a href="#local-6989586621681089514"><span class="hs-identifier hs-var">errs_var</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(ShIfEnv -&gt; IORef ErrorMessages)
-&gt; IOEnv (Env ShIfEnv ()) ShIfEnv
-&gt; IOEnv (Env ShIfEnv ()) (IORef ErrorMessages)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#fmap"><span class="hs-identifier hs-var">fmap</span></a></span><span> </span><span class="annot"><span class="annottext">ShIfEnv -&gt; IORef ErrorMessages
</span><a href="GHC.Iface.Rename.html#sh_if_errs"><span class="hs-identifier hs-var hs-var">sh_if_errs</span></a></span><span> </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) ShIfEnv
forall gbl lcl. TcRnIf gbl lcl gbl
</span><a href="GHC.Tc.Utils.Monad.html#getGblEnv"><span class="hs-identifier hs-var">getGblEnv</span></a></span><span>
</span><span id="line-72"></span><span>    </span><span id="local-6989586621681089511"><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621681089511"><span class="hs-identifier hs-var">dflags</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) DynFlags
forall (m :: * -&gt; *). HasDynFlags m =&gt; m DynFlags
</span><a href="GHC.Driver.Session.html#getDynFlags"><span class="hs-identifier hs-var">getDynFlags</span></a></span><span>
</span><span id="line-73"></span><span>    </span><span id="local-6989586621681089509"><span class="annot"><span class="annottext">ErrorMessages
</span><a href="#local-6989586621681089509"><span class="hs-identifier hs-var">errs</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">IORef ErrorMessages -&gt; TcRnIf ShIfEnv () ErrorMessages
forall a gbl lcl. TcRef a -&gt; TcRnIf gbl lcl a
</span><a href="GHC.Tc.Utils.Monad.html#readTcRef"><span class="hs-identifier hs-var">readTcRef</span></a></span><span> </span><span class="annot"><span class="annottext">IORef ErrorMessages
</span><a href="#local-6989586621681089514"><span class="hs-identifier hs-var">errs_var</span></a></span><span>
</span><span id="line-74"></span><span>    </span><span class="hs-comment">-- TODO: maybe associate this with a source location?</span><span>
</span><span id="line-75"></span><span>    </span><span class="annot"><span class="annottext">IORef ErrorMessages -&gt; ErrorMessages -&gt; TcRnIf ShIfEnv () ()
forall a gbl lcl. TcRef a -&gt; a -&gt; TcRnIf gbl lcl ()
</span><a href="GHC.Tc.Utils.Monad.html#writeTcRef"><span class="hs-identifier hs-var">writeTcRef</span></a></span><span> </span><span class="annot"><span class="annottext">IORef ErrorMessages
</span><a href="#local-6989586621681089514"><span class="hs-identifier hs-var">errs_var</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ErrorMessages
</span><a href="#local-6989586621681089509"><span class="hs-identifier hs-var">errs</span></a></span><span> </span><span class="annot"><span class="annottext">ErrorMessages -&gt; ErrMsg -&gt; ErrorMessages
forall a. Bag a -&gt; a -&gt; Bag a
</span><a href="GHC.Data.Bag.html#snocBag"><span class="hs-operator hs-var">`snocBag`</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags -&gt; SrcSpan -&gt; SDoc -&gt; ErrMsg
</span><a href="GHC.Utils.Error.html#mkPlainErrMsg"><span class="hs-identifier hs-var">mkPlainErrMsg</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621681089511"><span class="hs-identifier hs-var">dflags</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="GHC.Types.SrcLoc.html#noSrcSpan"><span class="hs-identifier hs-var">noSrcSpan</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681089515"><span class="hs-identifier hs-var">doc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-76"></span><span>    </span><span class="annot"><span class="annottext">ShIfM a
forall env a. IOEnv env a
</span><a href="GHC.Data.IOEnv.html#failM"><span class="hs-identifier hs-var">failM</span></a></span><span>
</span><span id="line-77"></span><span>
</span><span id="line-78"></span><span class="hs-comment">-- | What we have is a generalized ModIface, which corresponds to</span><span>
</span><span id="line-79"></span><span class="hs-comment">-- a module that looks like p[A=\&lt;A&gt;]:B.  We need a *specific* ModIface, e.g.</span><span>
</span><span id="line-80"></span><span class="hs-comment">-- p[A=q():A]:B (or maybe even p[A=\&lt;B&gt;]:B) which we load</span><span>
</span><span id="line-81"></span><span class="hs-comment">-- up (either to merge it, or to just use during typechecking).</span><span>
</span><span id="line-82"></span><span class="hs-comment">--</span><span>
</span><span id="line-83"></span><span class="hs-comment">-- Suppose we have:</span><span>
</span><span id="line-84"></span><span class="hs-comment">--</span><span>
</span><span id="line-85"></span><span class="hs-comment">--  p[A=\&lt;A&gt;]:M  ==&gt;  p[A=q():A]:M</span><span>
</span><span id="line-86"></span><span class="hs-comment">--</span><span>
</span><span id="line-87"></span><span class="hs-comment">-- Substitute all occurrences of \&lt;A&gt; with q():A (renameHoleModule).</span><span>
</span><span id="line-88"></span><span class="hs-comment">-- Then, for any Name of form {A.T}, replace the Name with</span><span>
</span><span id="line-89"></span><span class="hs-comment">-- the Name according to the exports of the implementing module.</span><span>
</span><span id="line-90"></span><span class="hs-comment">-- This works even for p[A=\&lt;B&gt;]:M, since we just read in the</span><span>
</span><span id="line-91"></span><span class="hs-comment">-- exports of B.hi, which is assumed to be ready now.</span><span>
</span><span id="line-92"></span><span class="hs-comment">--</span><span>
</span><span id="line-93"></span><span class="hs-comment">-- This function takes an optional 'NameShape', which can be used</span><span>
</span><span id="line-94"></span><span class="hs-comment">-- to further refine the identities in this interface: suppose</span><span>
</span><span id="line-95"></span><span class="hs-comment">-- we read a declaration for {H.T} but we actually know that this</span><span>
</span><span id="line-96"></span><span class="hs-comment">-- should be Foo.T; then we'll also rename this (this is used</span><span>
</span><span id="line-97"></span><span class="hs-comment">-- when loading an interface to merge it into a requirement.)</span><span>
</span><span id="line-98"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnModIface"><span class="hs-identifier hs-type">rnModIface</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Driver.Types.html#HscEnv"><span class="hs-identifier hs-type">HscEnv</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Module.Name.html#ModuleName"><span class="hs-identifier hs-type">ModuleName</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Module"><span class="hs-identifier hs-type">Module</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="GHC.Tc.Types.html#NameShape"><span class="hs-identifier hs-type">NameShape</span></a></span><span>
</span><span id="line-99"></span><span>           </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Driver.Types.html#ModIface"><span class="hs-identifier hs-type">ModIface</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Data.Either.html#Either"><span class="hs-identifier hs-type">Either</span></a></span><span> </span><span class="annot"><a href="GHC.Utils.Error.html#ErrorMessages"><span class="hs-identifier hs-type">ErrorMessages</span></a></span><span> </span><span class="annot"><a href="GHC.Driver.Types.html#ModIface"><span class="hs-identifier hs-type">ModIface</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-100"></span><span id="rnModIface"><span class="annot"><span class="annottext">rnModIface :: HscEnv
-&gt; [(ModuleName, Module)]
-&gt; Maybe NameShape
-&gt; ModIface
-&gt; IO (Either ErrorMessages ModIface)
</span><a href="GHC.Iface.Rename.html#rnModIface"><span class="hs-identifier hs-var hs-var">rnModIface</span></a></span></span><span> </span><span id="local-6989586621681089503"><span class="annot"><span class="annottext">HscEnv
</span><a href="#local-6989586621681089503"><span class="hs-identifier hs-var">hsc_env</span></a></span></span><span> </span><span id="local-6989586621681089502"><span class="annot"><span class="annottext">[(ModuleName, Module)]
</span><a href="#local-6989586621681089502"><span class="hs-identifier hs-var">insts</span></a></span></span><span> </span><span id="local-6989586621681089501"><span class="annot"><span class="annottext">Maybe NameShape
</span><a href="#local-6989586621681089501"><span class="hs-identifier hs-var">nsubst</span></a></span></span><span> </span><span id="local-6989586621681089500"><span class="annot"><span class="annottext">ModIface
</span><a href="#local-6989586621681089500"><span class="hs-identifier hs-var">iface</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-101"></span><span>    </span><span class="annot"><span class="annottext">HscEnv
-&gt; ModIface
-&gt; [(ModuleName, Module)]
-&gt; Maybe NameShape
-&gt; ShIfM ModIface
-&gt; IO (Either ErrorMessages ModIface)
forall a.
HscEnv
-&gt; ModIface
-&gt; [(ModuleName, Module)]
-&gt; Maybe NameShape
-&gt; ShIfM a
-&gt; IO (Either ErrorMessages a)
</span><a href="GHC.Iface.Rename.html#initRnIface"><span class="hs-identifier hs-var">initRnIface</span></a></span><span> </span><span class="annot"><span class="annottext">HscEnv
</span><a href="#local-6989586621681089503"><span class="hs-identifier hs-var">hsc_env</span></a></span><span> </span><span class="annot"><span class="annottext">ModIface
</span><a href="#local-6989586621681089500"><span class="hs-identifier hs-var">iface</span></a></span><span> </span><span class="annot"><span class="annottext">[(ModuleName, Module)]
</span><a href="#local-6989586621681089502"><span class="hs-identifier hs-var">insts</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe NameShape
</span><a href="#local-6989586621681089501"><span class="hs-identifier hs-var">nsubst</span></a></span><span> </span><span class="annot"><span class="annottext">(ShIfM ModIface -&gt; IO (Either ErrorMessages ModIface))
-&gt; ShIfM ModIface -&gt; IO (Either ErrorMessages ModIface)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-102"></span><span>        </span><span id="local-6989586621681089498"><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681089498"><span class="hs-identifier hs-var">mod</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Rename Module
</span><a href="GHC.Iface.Rename.html#rnModule"><span class="hs-identifier hs-var">rnModule</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ModIface -&gt; Module
forall (phase :: ModIfacePhase). ModIface_ phase -&gt; Module
</span><a href="GHC.Driver.Types.html#mi_module"><span class="hs-identifier hs-var hs-var">mi_module</span></a></span><span> </span><span class="annot"><span class="annottext">ModIface
</span><a href="#local-6989586621681089500"><span class="hs-identifier hs-var">iface</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-103"></span><span>        </span><span id="local-6989586621681089495"><span class="annot"><span class="annottext">Maybe Module
</span><a href="#local-6989586621681089495"><span class="hs-identifier hs-var">sig_of</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">ModIface -&gt; Maybe Module
forall (phase :: ModIfacePhase). ModIface_ phase -&gt; Maybe Module
</span><a href="GHC.Driver.Types.html#mi_sig_of"><span class="hs-identifier hs-var hs-var">mi_sig_of</span></a></span><span> </span><span class="annot"><span class="annottext">ModIface
</span><a href="#local-6989586621681089500"><span class="hs-identifier hs-var">iface</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-104"></span><span>                    </span><span class="annot"><span class="annottext">Maybe Module
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Maybe Module -&gt; IOEnv (Env ShIfEnv ()) (Maybe Module)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe Module
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span>
</span><span id="line-105"></span><span>                    </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621681089493"><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681089493"><span class="hs-identifier hs-var">x</span></a></span></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">(Module -&gt; Maybe Module)
-&gt; IOEnv (Env ShIfEnv ()) Module
-&gt; IOEnv (Env ShIfEnv ()) (Maybe Module)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#fmap"><span class="hs-identifier hs-var">fmap</span></a></span><span> </span><span class="annot"><span class="annottext">Module -&gt; Maybe Module
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Rename Module
</span><a href="GHC.Iface.Rename.html#rnModule"><span class="hs-identifier hs-var">rnModule</span></a></span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681089493"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-106"></span><span>        </span><span id="local-6989586621681089492"><span class="annot"><span class="annottext">[AvailInfo]
</span><a href="#local-6989586621681089492"><span class="hs-identifier hs-var">exports</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(AvailInfo -&gt; IOEnv (Env ShIfEnv ()) AvailInfo)
-&gt; [AvailInfo] -&gt; IOEnv (Env ShIfEnv ()) [AvailInfo]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="annot"><span class="annottext">AvailInfo -&gt; IOEnv (Env ShIfEnv ()) AvailInfo
</span><a href="GHC.Iface.Rename.html#rnAvailInfo"><span class="hs-identifier hs-var">rnAvailInfo</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ModIface -&gt; [AvailInfo]
forall (phase :: ModIfacePhase). ModIface_ phase -&gt; [AvailInfo]
</span><a href="GHC.Driver.Types.html#mi_exports"><span class="hs-identifier hs-var hs-var">mi_exports</span></a></span><span> </span><span class="annot"><span class="annottext">ModIface
</span><a href="#local-6989586621681089500"><span class="hs-identifier hs-var">iface</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-107"></span><span>        </span><span id="local-6989586621681089488"><span class="annot"><span class="annottext">[(Fingerprint, IfaceDecl)]
</span><a href="#local-6989586621681089488"><span class="hs-identifier hs-var">decls</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">((Fingerprint, IfaceDecl)
 -&gt; IOEnv (Env ShIfEnv ()) (Fingerprint, IfaceDecl))
-&gt; [(Fingerprint, IfaceDecl)]
-&gt; IOEnv (Env ShIfEnv ()) [(Fingerprint, IfaceDecl)]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="annot"><span class="annottext">(Fingerprint, IfaceDecl)
-&gt; IOEnv (Env ShIfEnv ()) (Fingerprint, IfaceDecl)
</span><a href="GHC.Iface.Rename.html#rnIfaceDecl%27"><span class="hs-identifier hs-var">rnIfaceDecl'</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ModIface -&gt; [IfaceDeclExts 'ModIfaceFinal]
forall (phase :: ModIfacePhase).
ModIface_ phase -&gt; [IfaceDeclExts phase]
</span><a href="GHC.Driver.Types.html#mi_decls"><span class="hs-identifier hs-var hs-var">mi_decls</span></a></span><span> </span><span class="annot"><span class="annottext">ModIface
</span><a href="#local-6989586621681089500"><span class="hs-identifier hs-var">iface</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-108"></span><span>        </span><span id="local-6989586621681089485"><span class="annot"><span class="annottext">[IfaceClsInst]
</span><a href="#local-6989586621681089485"><span class="hs-identifier hs-var">insts</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(IfaceClsInst -&gt; IOEnv (Env ShIfEnv ()) IfaceClsInst)
-&gt; [IfaceClsInst] -&gt; IOEnv (Env ShIfEnv ()) [IfaceClsInst]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceClsInst -&gt; IOEnv (Env ShIfEnv ()) IfaceClsInst
</span><a href="GHC.Iface.Rename.html#rnIfaceClsInst"><span class="hs-identifier hs-var">rnIfaceClsInst</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ModIface -&gt; [IfaceClsInst]
forall (phase :: ModIfacePhase). ModIface_ phase -&gt; [IfaceClsInst]
</span><a href="GHC.Driver.Types.html#mi_insts"><span class="hs-identifier hs-var hs-var">mi_insts</span></a></span><span> </span><span class="annot"><span class="annottext">ModIface
</span><a href="#local-6989586621681089500"><span class="hs-identifier hs-var">iface</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-109"></span><span>        </span><span id="local-6989586621681089482"><span class="annot"><span class="annottext">[IfaceFamInst]
</span><a href="#local-6989586621681089482"><span class="hs-identifier hs-var">fams</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(IfaceFamInst -&gt; IOEnv (Env ShIfEnv ()) IfaceFamInst)
-&gt; [IfaceFamInst] -&gt; IOEnv (Env ShIfEnv ()) [IfaceFamInst]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceFamInst -&gt; IOEnv (Env ShIfEnv ()) IfaceFamInst
</span><a href="GHC.Iface.Rename.html#rnIfaceFamInst"><span class="hs-identifier hs-var">rnIfaceFamInst</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ModIface -&gt; [IfaceFamInst]
forall (phase :: ModIfacePhase). ModIface_ phase -&gt; [IfaceFamInst]
</span><a href="GHC.Driver.Types.html#mi_fam_insts"><span class="hs-identifier hs-var hs-var">mi_fam_insts</span></a></span><span> </span><span class="annot"><span class="annottext">ModIface
</span><a href="#local-6989586621681089500"><span class="hs-identifier hs-var">iface</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-110"></span><span>        </span><span id="local-6989586621681089479"><span class="annot"><span class="annottext">Dependencies
</span><a href="#local-6989586621681089479"><span class="hs-identifier hs-var">deps</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Rename Dependencies
</span><a href="GHC.Iface.Rename.html#rnDependencies"><span class="hs-identifier hs-var">rnDependencies</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ModIface -&gt; Dependencies
forall (phase :: ModIfacePhase). ModIface_ phase -&gt; Dependencies
</span><a href="GHC.Driver.Types.html#mi_deps"><span class="hs-identifier hs-var hs-var">mi_deps</span></a></span><span> </span><span class="annot"><span class="annottext">ModIface
</span><a href="#local-6989586621681089500"><span class="hs-identifier hs-var">iface</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-111"></span><span>        </span><span class="hs-comment">-- TODO:</span><span>
</span><span id="line-112"></span><span>        </span><span class="hs-comment">-- mi_rules</span><span>
</span><span id="line-113"></span><span>        </span><span class="annot"><span class="annottext">ModIface -&gt; ShIfM ModIface
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">ModIface
</span><a href="#local-6989586621681089500"><span class="hs-identifier hs-var">iface</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">mi_module :: Module
</span><a href="GHC.Driver.Types.html#mi_module"><span class="hs-identifier hs-var">mi_module</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681089498"><span class="hs-identifier hs-var">mod</span></a></span><span>
</span><span id="line-114"></span><span>                     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">mi_sig_of :: Maybe Module
</span><a href="GHC.Driver.Types.html#mi_sig_of"><span class="hs-identifier hs-var">mi_sig_of</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe Module
</span><a href="#local-6989586621681089495"><span class="hs-identifier hs-var">sig_of</span></a></span><span>
</span><span id="line-115"></span><span>                     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">mi_insts :: [IfaceClsInst]
</span><a href="GHC.Driver.Types.html#mi_insts"><span class="hs-identifier hs-var">mi_insts</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[IfaceClsInst]
</span><a href="#local-6989586621681089485"><span class="hs-identifier hs-var">insts</span></a></span><span>
</span><span id="line-116"></span><span>                     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">mi_fam_insts :: [IfaceFamInst]
</span><a href="GHC.Driver.Types.html#mi_fam_insts"><span class="hs-identifier hs-var">mi_fam_insts</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[IfaceFamInst]
</span><a href="#local-6989586621681089482"><span class="hs-identifier hs-var">fams</span></a></span><span>
</span><span id="line-117"></span><span>                     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">mi_exports :: [AvailInfo]
</span><a href="GHC.Driver.Types.html#mi_exports"><span class="hs-identifier hs-var">mi_exports</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[AvailInfo]
</span><a href="#local-6989586621681089492"><span class="hs-identifier hs-var">exports</span></a></span><span>
</span><span id="line-118"></span><span>                     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">mi_decls :: [IfaceDeclExts 'ModIfaceFinal]
</span><a href="GHC.Driver.Types.html#mi_decls"><span class="hs-identifier hs-var">mi_decls</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[(Fingerprint, IfaceDecl)]
[IfaceDeclExts 'ModIfaceFinal]
</span><a href="#local-6989586621681089488"><span class="hs-identifier hs-var">decls</span></a></span><span>
</span><span id="line-119"></span><span>                     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">mi_deps :: Dependencies
</span><a href="GHC.Driver.Types.html#mi_deps"><span class="hs-identifier hs-var">mi_deps</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Dependencies
</span><a href="#local-6989586621681089479"><span class="hs-identifier hs-var">deps</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-120"></span><span>
</span><span id="line-121"></span><span class="hs-comment">-- | Rename just the exports of a 'ModIface'.  Useful when we're doing</span><span>
</span><span id="line-122"></span><span class="hs-comment">-- shaping prior to signature merging.</span><span>
</span><span id="line-123"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnModExports"><span class="hs-identifier hs-type">rnModExports</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Driver.Types.html#HscEnv"><span class="hs-identifier hs-type">HscEnv</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Module.Name.html#ModuleName"><span class="hs-identifier hs-type">ModuleName</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Module"><span class="hs-identifier hs-type">Module</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Driver.Types.html#ModIface"><span class="hs-identifier hs-type">ModIface</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Data.Either.html#Either"><span class="hs-identifier hs-type">Either</span></a></span><span> </span><span class="annot"><a href="GHC.Utils.Error.html#ErrorMessages"><span class="hs-identifier hs-type">ErrorMessages</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Types.Avail.html#AvailInfo"><span class="hs-identifier hs-type">AvailInfo</span></a></span><span class="hs-special">]</span><span class="hs-special">)</span><span>
</span><span id="line-124"></span><span id="rnModExports"><span class="annot"><span class="annottext">rnModExports :: HscEnv
-&gt; [(ModuleName, Module)]
-&gt; ModIface
-&gt; IO (Either ErrorMessages [AvailInfo])
</span><a href="GHC.Iface.Rename.html#rnModExports"><span class="hs-identifier hs-var hs-var">rnModExports</span></a></span></span><span> </span><span id="local-6989586621681089476"><span class="annot"><span class="annottext">HscEnv
</span><a href="#local-6989586621681089476"><span class="hs-identifier hs-var">hsc_env</span></a></span></span><span> </span><span id="local-6989586621681089475"><span class="annot"><span class="annottext">[(ModuleName, Module)]
</span><a href="#local-6989586621681089475"><span class="hs-identifier hs-var">insts</span></a></span></span><span> </span><span id="local-6989586621681089474"><span class="annot"><span class="annottext">ModIface
</span><a href="#local-6989586621681089474"><span class="hs-identifier hs-var">iface</span></a></span></span><span>
</span><span id="line-125"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HscEnv
-&gt; ModIface
-&gt; [(ModuleName, Module)]
-&gt; Maybe NameShape
-&gt; IOEnv (Env ShIfEnv ()) [AvailInfo]
-&gt; IO (Either ErrorMessages [AvailInfo])
forall a.
HscEnv
-&gt; ModIface
-&gt; [(ModuleName, Module)]
-&gt; Maybe NameShape
-&gt; ShIfM a
-&gt; IO (Either ErrorMessages a)
</span><a href="GHC.Iface.Rename.html#initRnIface"><span class="hs-identifier hs-var">initRnIface</span></a></span><span> </span><span class="annot"><span class="annottext">HscEnv
</span><a href="#local-6989586621681089476"><span class="hs-identifier hs-var">hsc_env</span></a></span><span> </span><span class="annot"><span class="annottext">ModIface
</span><a href="#local-6989586621681089474"><span class="hs-identifier hs-var">iface</span></a></span><span> </span><span class="annot"><span class="annottext">[(ModuleName, Module)]
</span><a href="#local-6989586621681089475"><span class="hs-identifier hs-var">insts</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe NameShape
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span>
</span><span id="line-126"></span><span>    </span><span class="annot"><span class="annottext">(IOEnv (Env ShIfEnv ()) [AvailInfo]
 -&gt; IO (Either ErrorMessages [AvailInfo]))
-&gt; IOEnv (Env ShIfEnv ()) [AvailInfo]
-&gt; IO (Either ErrorMessages [AvailInfo])
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(AvailInfo -&gt; IOEnv (Env ShIfEnv ()) AvailInfo)
-&gt; [AvailInfo] -&gt; IOEnv (Env ShIfEnv ()) [AvailInfo]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="annot"><span class="annottext">AvailInfo -&gt; IOEnv (Env ShIfEnv ()) AvailInfo
</span><a href="GHC.Iface.Rename.html#rnAvailInfo"><span class="hs-identifier hs-var">rnAvailInfo</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ModIface -&gt; [AvailInfo]
forall (phase :: ModIfacePhase). ModIface_ phase -&gt; [AvailInfo]
</span><a href="GHC.Driver.Types.html#mi_exports"><span class="hs-identifier hs-var hs-var">mi_exports</span></a></span><span> </span><span class="annot"><span class="annottext">ModIface
</span><a href="#local-6989586621681089474"><span class="hs-identifier hs-var">iface</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-127"></span><span>
</span><span id="line-128"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnDependencies"><span class="hs-identifier hs-type">rnDependencies</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#Rename"><span class="hs-identifier hs-type">Rename</span></a></span><span> </span><span class="annot"><a href="GHC.Driver.Types.html#Dependencies"><span class="hs-identifier hs-type">Dependencies</span></a></span><span>
</span><span id="line-129"></span><span id="rnDependencies"><span class="annot"><span class="annottext">rnDependencies :: Rename Dependencies
</span><a href="GHC.Iface.Rename.html#rnDependencies"><span class="hs-identifier hs-var hs-var">rnDependencies</span></a></span></span><span> </span><span id="local-6989586621681089473"><span class="annot"><span class="annottext">Dependencies
</span><a href="#local-6989586621681089473"><span class="hs-identifier hs-var">deps</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-130"></span><span>    </span><span id="local-6989586621681089472"><span class="annot"><span class="annottext">[Module]
</span><a href="#local-6989586621681089472"><span class="hs-identifier hs-var">orphs</span></a></span></span><span>  </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(Dependencies -&gt; [Module]) -&gt; Dependencies -&gt; ShIfM [Module]
</span><a href="GHC.Iface.Rename.html#rnDepModules"><span class="hs-identifier hs-var">rnDepModules</span></a></span><span> </span><span class="annot"><span class="annottext">Dependencies -&gt; [Module]
</span><a href="GHC.Driver.Types.html#dep_orphs"><span class="hs-identifier hs-var hs-var">dep_orphs</span></a></span><span> </span><span class="annot"><span class="annottext">Dependencies
</span><a href="#local-6989586621681089473"><span class="hs-identifier hs-var">deps</span></a></span><span>
</span><span id="line-131"></span><span>    </span><span id="local-6989586621681089469"><span class="annot"><span class="annottext">[Module]
</span><a href="#local-6989586621681089469"><span class="hs-identifier hs-var">finsts</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(Dependencies -&gt; [Module]) -&gt; Dependencies -&gt; ShIfM [Module]
</span><a href="GHC.Iface.Rename.html#rnDepModules"><span class="hs-identifier hs-var">rnDepModules</span></a></span><span> </span><span class="annot"><span class="annottext">Dependencies -&gt; [Module]
</span><a href="GHC.Driver.Types.html#dep_finsts"><span class="hs-identifier hs-var hs-var">dep_finsts</span></a></span><span> </span><span class="annot"><span class="annottext">Dependencies
</span><a href="#local-6989586621681089473"><span class="hs-identifier hs-var">deps</span></a></span><span>
</span><span id="line-132"></span><span>    </span><span class="annot"><span class="annottext">Rename Dependencies
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">Dependencies
</span><a href="#local-6989586621681089473"><span class="hs-identifier hs-var">deps</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">dep_orphs :: [Module]
</span><a href="GHC.Driver.Types.html#dep_orphs"><span class="hs-identifier hs-var">dep_orphs</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Module]
</span><a href="#local-6989586621681089472"><span class="hs-identifier hs-var">orphs</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">dep_finsts :: [Module]
</span><a href="GHC.Driver.Types.html#dep_finsts"><span class="hs-identifier hs-var">dep_finsts</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Module]
</span><a href="#local-6989586621681089469"><span class="hs-identifier hs-var">finsts</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-133"></span><span>
</span><span id="line-134"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnDepModules"><span class="hs-identifier hs-type">rnDepModules</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Driver.Types.html#Dependencies"><span class="hs-identifier hs-type">Dependencies</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Unit.Types.html#Module"><span class="hs-identifier hs-type">Module</span></a></span><span class="hs-special">]</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Driver.Types.html#Dependencies"><span class="hs-identifier hs-type">Dependencies</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#ShIfM"><span class="hs-identifier hs-type">ShIfM</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Unit.Types.html#Module"><span class="hs-identifier hs-type">Module</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-135"></span><span id="rnDepModules"><span class="annot"><span class="annottext">rnDepModules :: (Dependencies -&gt; [Module]) -&gt; Dependencies -&gt; ShIfM [Module]
</span><a href="GHC.Iface.Rename.html#rnDepModules"><span class="hs-identifier hs-var hs-var">rnDepModules</span></a></span></span><span> </span><span id="local-6989586621681089467"><span class="annot"><span class="annottext">Dependencies -&gt; [Module]
</span><a href="#local-6989586621681089467"><span class="hs-identifier hs-var">sel</span></a></span></span><span> </span><span id="local-6989586621681089466"><span class="annot"><span class="annottext">Dependencies
</span><a href="#local-6989586621681089466"><span class="hs-identifier hs-var">deps</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-136"></span><span>    </span><span id="local-6989586621681089465"><span class="annot"><span class="annottext">HscEnv
</span><a href="#local-6989586621681089465"><span class="hs-identifier hs-var">hsc_env</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">TcRnIf ShIfEnv () HscEnv
forall gbl lcl. TcRnIf gbl lcl HscEnv
</span><a href="GHC.Tc.Utils.Monad.html#getTopEnv"><span class="hs-identifier hs-var">getTopEnv</span></a></span><span>
</span><span id="line-137"></span><span>    </span><span id="local-6989586621681089464"><span class="annot"><span class="annottext">ShHoleSubst
</span><a href="#local-6989586621681089464"><span class="hs-identifier hs-var">hmap</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">ShIfM ShHoleSubst
</span><a href="GHC.Iface.Rename.html#getHoleSubst"><span class="hs-identifier hs-var">getHoleSubst</span></a></span><span>
</span><span id="line-138"></span><span>    </span><span class="hs-comment">-- NB: It's not necessary to test if we're doing signature renaming,</span><span>
</span><span id="line-139"></span><span>    </span><span class="hs-comment">-- because ModIface will never contain module reference for itself</span><span>
</span><span id="line-140"></span><span>    </span><span class="hs-comment">-- in these dependencies.</span><span>
</span><span id="line-141"></span><span>    </span><span class="annot"><span class="annottext">([[Module]] -&gt; [Module])
-&gt; IOEnv (Env ShIfEnv ()) [[Module]] -&gt; ShIfM [Module]
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#fmap"><span class="hs-identifier hs-var">fmap</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Module] -&gt; [Module]
forall a. Ord a =&gt; [a] -&gt; [a]
</span><a href="GHC.Utils.Misc.html#nubSort"><span class="hs-identifier hs-var">nubSort</span></a></span><span> </span><span class="annot"><span class="annottext">([Module] -&gt; [Module])
-&gt; ([[Module]] -&gt; [Module]) -&gt; [[Module]] -&gt; [Module]
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">[[Module]] -&gt; [Module]
forall (t :: * -&gt; *) a. Foldable t =&gt; t [a] -&gt; [a]
</span><a href="../../base/src/Data.Foldable.html#concat"><span class="hs-identifier hs-var">concat</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(IOEnv (Env ShIfEnv ()) [[Module]] -&gt; ShIfM [Module])
-&gt; ((Module -&gt; ShIfM [Module])
    -&gt; IOEnv (Env ShIfEnv ()) [[Module]])
-&gt; (Module -&gt; ShIfM [Module])
-&gt; ShIfM [Module]
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">[Module]
-&gt; (Module -&gt; ShIfM [Module]) -&gt; IOEnv (Env ShIfEnv ()) [[Module]]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
t a -&gt; (a -&gt; m b) -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#forM"><span class="hs-identifier hs-var">T.forM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Dependencies -&gt; [Module]
</span><a href="#local-6989586621681089467"><span class="hs-identifier hs-var">sel</span></a></span><span> </span><span class="annot"><span class="annottext">Dependencies
</span><a href="#local-6989586621681089466"><span class="hs-identifier hs-var">deps</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">((Module -&gt; ShIfM [Module]) -&gt; ShIfM [Module])
-&gt; (Module -&gt; ShIfM [Module]) -&gt; ShIfM [Module]
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621681089458"><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681089458"><span class="hs-identifier hs-var">mod</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-142"></span><span>        </span><span id="local-6989586621681089457"><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621681089457"><span class="hs-identifier hs-var">dflags</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) DynFlags
forall (m :: * -&gt; *). HasDynFlags m =&gt; m DynFlags
</span><a href="GHC.Driver.Session.html#getDynFlags"><span class="hs-identifier hs-var">getDynFlags</span></a></span><span>
</span><span id="line-143"></span><span>        </span><span class="hs-comment">-- For holes, its necessary to &quot;see through&quot; the instantiation</span><span>
</span><span id="line-144"></span><span>        </span><span class="hs-comment">-- of the hole to get accurate family instance dependencies.</span><span>
</span><span id="line-145"></span><span>        </span><span class="hs-comment">-- For example, if B imports &lt;A&gt;, and &lt;A&gt; is instantiated with</span><span>
</span><span id="line-146"></span><span>        </span><span class="hs-comment">-- F, we must grab and include all of the dep_finsts from</span><span>
</span><span id="line-147"></span><span>        </span><span class="hs-comment">-- F to have an accurate transitive dep_finsts list.</span><span>
</span><span id="line-148"></span><span>        </span><span class="hs-comment">--</span><span>
</span><span id="line-149"></span><span>        </span><span class="hs-comment">-- However, we MUST NOT do this for regular modules.</span><span>
</span><span id="line-150"></span><span>        </span><span class="hs-comment">-- First, for efficiency reasons, doing this</span><span>
</span><span id="line-151"></span><span>        </span><span class="hs-comment">-- bloats the dep_finsts list, because we *already* had</span><span>
</span><span id="line-152"></span><span>        </span><span class="hs-comment">-- those modules in the list (it wasn't a hole module, after</span><span>
</span><span id="line-153"></span><span>        </span><span class="hs-comment">-- all). But there's a second, more important correctness</span><span>
</span><span id="line-154"></span><span>        </span><span class="hs-comment">-- consideration: we perform module renaming when running</span><span>
</span><span id="line-155"></span><span>        </span><span class="hs-comment">-- --abi-hash.  In this case, GHC's contract to the user is that</span><span>
</span><span id="line-156"></span><span>        </span><span class="hs-comment">-- it will NOT go and read out interfaces of any dependencies</span><span>
</span><span id="line-157"></span><span>        </span><span class="hs-comment">-- (https://github.com/haskell/cabal/issues/3633); the point of</span><span>
</span><span id="line-158"></span><span>        </span><span class="hs-comment">-- --abi-hash is just to get a hash of the on-disk interfaces</span><span>
</span><span id="line-159"></span><span>        </span><span class="hs-comment">-- for this *specific* package.  If we go off and tug on the</span><span>
</span><span id="line-160"></span><span>        </span><span class="hs-comment">-- interface for /everything/ in dep_finsts, we're gonna have a</span><span>
</span><span id="line-161"></span><span>        </span><span class="hs-comment">-- bad time.  (It's safe to do this for hole modules, though,</span><span>
</span><span id="line-162"></span><span>        </span><span class="hs-comment">-- because the hmap for --abi-hash is always trivial, so the</span><span>
</span><span id="line-163"></span><span>        </span><span class="hs-comment">-- interface we request is local.  Though, maybe we ought</span><span>
</span><span id="line-164"></span><span>        </span><span class="hs-comment">-- not to do it in this case either...)</span><span>
</span><span id="line-165"></span><span>        </span><span class="hs-comment">--</span><span>
</span><span id="line-166"></span><span>        </span><span class="hs-comment">-- This mistake was bug #15594.</span><span>
</span><span id="line-167"></span><span>        </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681089456"><span class="annot"><span class="annottext">mod' :: Module
</span><a href="#local-6989586621681089456"><span class="hs-identifier hs-var hs-var">mod'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UnitState -&gt; ShHoleSubst -&gt; Module -&gt; Module
</span><a href="GHC.Unit.State.html#renameHoleModule"><span class="hs-identifier hs-var">renameHoleModule</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">DynFlags -&gt; UnitState
</span><a href="GHC.Driver.Session.html#unitState"><span class="hs-identifier hs-var hs-var">unitState</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621681089457"><span class="hs-identifier hs-var">dflags</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">ShHoleSubst
</span><a href="#local-6989586621681089464"><span class="hs-identifier hs-var">hmap</span></a></span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681089458"><span class="hs-identifier hs-var">mod</span></a></span><span>
</span><span id="line-168"></span><span>        </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">Module -&gt; Bool
forall u. GenModule (GenUnit u) -&gt; Bool
</span><a href="GHC.Unit.Module.html#isHoleModule"><span class="hs-identifier hs-var">isHoleModule</span></a></span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681089458"><span class="hs-identifier hs-var">mod</span></a></span><span>
</span><span id="line-169"></span><span>          </span><span class="hs-keyword">then</span><span> </span><span class="hs-keyword">do</span><span> </span><span id="local-6989586621681089452"><span class="annot"><span class="annottext">ModIface
</span><a href="#local-6989586621681089452"><span class="hs-identifier hs-var">iface</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">IO ModIface -&gt; ShIfM ModIface
forall (m :: * -&gt; *) a. MonadIO m =&gt; IO a -&gt; m a
</span><a href="../../base/src/Control.Monad.IO.Class.html#liftIO"><span class="hs-identifier hs-var">liftIO</span></a></span><span> </span><span class="annot"><span class="annottext">(IO ModIface -&gt; ShIfM ModIface)
-&gt; (IfG ModIface -&gt; IO ModIface) -&gt; IfG ModIface -&gt; ShIfM ModIface
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; HscEnv -&gt; IfG ModIface -&gt; IO ModIface
forall a. SDoc -&gt; HscEnv -&gt; IfG a -&gt; IO a
</span><a href="GHC.Tc.Utils.Monad.html#initIfaceCheck"><span class="hs-identifier hs-var">initIfaceCheck</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;rnDepModule&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">HscEnv
</span><a href="#local-6989586621681089465"><span class="hs-identifier hs-var">hsc_env</span></a></span><span>
</span><span id="line-170"></span><span>                                  </span><span class="annot"><span class="annottext">(IfG ModIface -&gt; ShIfM ModIface) -&gt; IfG ModIface -&gt; ShIfM ModIface
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; Module -&gt; IfG ModIface
forall lcl. SDoc -&gt; Module -&gt; IfM lcl ModIface
</span><a href="GHC.Iface.Load.html#loadSysInterface"><span class="hs-identifier hs-var">loadSysInterface</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;rnDepModule&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681089456"><span class="hs-identifier hs-var">mod'</span></a></span><span>
</span><span id="line-171"></span><span>                  </span><span class="annot"><span class="annottext">[Module] -&gt; ShIfM [Module]
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681089456"><span class="hs-identifier hs-var">mod'</span></a></span><span> </span><span class="annot"><span class="annottext">Module -&gt; [Module] -&gt; [Module]
forall a. a -&gt; [a] -&gt; [a]
</span><span class="hs-glyph hs-var">:</span></span><span> </span><span class="annot"><span class="annottext">Dependencies -&gt; [Module]
</span><a href="#local-6989586621681089467"><span class="hs-identifier hs-var">sel</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ModIface -&gt; Dependencies
forall (phase :: ModIfacePhase). ModIface_ phase -&gt; Dependencies
</span><a href="GHC.Driver.Types.html#mi_deps"><span class="hs-identifier hs-var hs-var">mi_deps</span></a></span><span> </span><span class="annot"><span class="annottext">ModIface
</span><a href="#local-6989586621681089452"><span class="hs-identifier hs-var">iface</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-172"></span><span>          </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">[Module] -&gt; ShIfM [Module]
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681089456"><span class="hs-identifier hs-var">mod'</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-173"></span><span>
</span><span id="line-174"></span><span class="hs-comment">{-
************************************************************************
*                                                                      *
                        ModIface substitution
*                                                                      *
************************************************************************
-}</span><span>
</span><span id="line-181"></span><span>
</span><span id="line-182"></span><span class="hs-comment">-- | Run a computation in the 'ShIfM' monad.</span><span>
</span><span id="line-183"></span><span id="local-6989586621681090090"><span class="annot"><a href="GHC.Iface.Rename.html#initRnIface"><span class="hs-identifier hs-type">initRnIface</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Driver.Types.html#HscEnv"><span class="hs-identifier hs-type">HscEnv</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Driver.Types.html#ModIface"><span class="hs-identifier hs-type">ModIface</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Module.Name.html#ModuleName"><span class="hs-identifier hs-type">ModuleName</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Module"><span class="hs-identifier hs-type">Module</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="GHC.Tc.Types.html#NameShape"><span class="hs-identifier hs-type">NameShape</span></a></span><span>
</span><span id="line-184"></span><span>            </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#ShIfM"><span class="hs-identifier hs-type">ShIfM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621681090090"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Data.Either.html#Either"><span class="hs-identifier hs-type">Either</span></a></span><span> </span><span class="annot"><a href="GHC.Utils.Error.html#ErrorMessages"><span class="hs-identifier hs-type">ErrorMessages</span></a></span><span> </span><span class="annot"><a href="#local-6989586621681090090"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-185"></span><span id="initRnIface"><span class="annot"><span class="annottext">initRnIface :: forall a.
HscEnv
-&gt; ModIface
-&gt; [(ModuleName, Module)]
-&gt; Maybe NameShape
-&gt; ShIfM a
-&gt; IO (Either ErrorMessages a)
</span><a href="GHC.Iface.Rename.html#initRnIface"><span class="hs-identifier hs-var hs-var">initRnIface</span></a></span></span><span> </span><span id="local-6989586621681089441"><span class="annot"><span class="annottext">HscEnv
</span><a href="#local-6989586621681089441"><span class="hs-identifier hs-var">hsc_env</span></a></span></span><span> </span><span id="local-6989586621681089440"><span class="annot"><span class="annottext">ModIface
</span><a href="#local-6989586621681089440"><span class="hs-identifier hs-var">iface</span></a></span></span><span> </span><span id="local-6989586621681089439"><span class="annot"><span class="annottext">[(ModuleName, Module)]
</span><a href="#local-6989586621681089439"><span class="hs-identifier hs-var">insts</span></a></span></span><span> </span><span id="local-6989586621681089438"><span class="annot"><span class="annottext">Maybe NameShape
</span><a href="#local-6989586621681089438"><span class="hs-identifier hs-var">nsubst</span></a></span></span><span> </span><span id="local-6989586621681089437"><span class="annot"><span class="annottext">ShIfM a
</span><a href="#local-6989586621681089437"><span class="hs-identifier hs-var">do_this</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-186"></span><span>    </span><span id="local-6989586621681089436"><span class="annot"><span class="annottext">IORef ErrorMessages
</span><a href="#local-6989586621681089436"><span class="hs-identifier hs-var">errs_var</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">ErrorMessages -&gt; IO (IORef ErrorMessages)
forall a. a -&gt; IO (IORef a)
</span><a href="../../base/src/GHC.IORef.html#newIORef"><span class="hs-identifier hs-var">newIORef</span></a></span><span> </span><span class="annot"><span class="annottext">ErrorMessages
forall a. Bag a
</span><a href="GHC.Data.Bag.html#emptyBag"><span class="hs-identifier hs-var">emptyBag</span></a></span><span>
</span><span id="line-187"></span><span>    </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681089434"><span class="annot"><span class="annottext">dflags :: DynFlags
</span><a href="#local-6989586621681089434"><span class="hs-identifier hs-var hs-var">dflags</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HscEnv -&gt; DynFlags
</span><a href="GHC.Driver.Types.html#hsc_dflags"><span class="hs-identifier hs-var hs-var">hsc_dflags</span></a></span><span> </span><span class="annot"><span class="annottext">HscEnv
</span><a href="#local-6989586621681089441"><span class="hs-identifier hs-var">hsc_env</span></a></span><span>
</span><span id="line-188"></span><span>        </span><span id="local-6989586621681089430"><span class="annot"><span class="annottext">hsubst :: ShHoleSubst
</span><a href="#local-6989586621681089430"><span class="hs-identifier hs-var hs-var">hsubst</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[(ModuleName, Module)] -&gt; ShHoleSubst
forall key elt. Uniquable key =&gt; [(key, elt)] -&gt; UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#listToUFM"><span class="hs-identifier hs-var">listToUFM</span></a></span><span> </span><span class="annot"><span class="annottext">[(ModuleName, Module)]
</span><a href="#local-6989586621681089439"><span class="hs-identifier hs-var">insts</span></a></span><span>
</span><span id="line-189"></span><span>        </span><span id="local-6989586621681089428"><span class="annot"><span class="annottext">rn_mod :: Module -&gt; Module
</span><a href="#local-6989586621681089428"><span class="hs-identifier hs-var hs-var">rn_mod</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UnitState -&gt; ShHoleSubst -&gt; Module -&gt; Module
</span><a href="GHC.Unit.State.html#renameHoleModule"><span class="hs-identifier hs-var">renameHoleModule</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">DynFlags -&gt; UnitState
</span><a href="GHC.Driver.Session.html#unitState"><span class="hs-identifier hs-var hs-var">unitState</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621681089434"><span class="hs-identifier hs-var">dflags</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">ShHoleSubst
</span><a href="#local-6989586621681089430"><span class="hs-identifier hs-var">hsubst</span></a></span><span>
</span><span id="line-190"></span><span>        </span><span id="local-6989586621681089426"><span class="annot"><span class="annottext">env :: ShIfEnv
</span><a href="#local-6989586621681089426"><span class="hs-identifier hs-var hs-var">env</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ShIfEnv :: Module
-&gt; Module
-&gt; ShHoleSubst
-&gt; Maybe NameShape
-&gt; IORef ErrorMessages
-&gt; ShIfEnv
</span><a href="GHC.Iface.Rename.html#ShIfEnv"><span class="hs-identifier hs-type">ShIfEnv</span></a></span><span> </span><span class="hs-special">{</span><span>
</span><span id="line-191"></span><span>            </span><span class="annot"><span class="annottext">sh_if_module :: Module
</span><a href="GHC.Iface.Rename.html#sh_if_module"><span class="hs-identifier hs-var">sh_if_module</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Module -&gt; Module
</span><a href="#local-6989586621681089428"><span class="hs-identifier hs-var">rn_mod</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ModIface -&gt; Module
forall (phase :: ModIfacePhase). ModIface_ phase -&gt; Module
</span><a href="GHC.Driver.Types.html#mi_module"><span class="hs-identifier hs-var hs-var">mi_module</span></a></span><span> </span><span class="annot"><span class="annottext">ModIface
</span><a href="#local-6989586621681089440"><span class="hs-identifier hs-var">iface</span></a></span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-192"></span><span>            </span><span class="annot"><span class="annottext">sh_if_semantic_module :: Module
</span><a href="GHC.Iface.Rename.html#sh_if_semantic_module"><span class="hs-identifier hs-var">sh_if_semantic_module</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Module -&gt; Module
</span><a href="#local-6989586621681089428"><span class="hs-identifier hs-var">rn_mod</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ModIface -&gt; Module
forall (phase :: ModIfacePhase). ModIface_ phase -&gt; Module
</span><a href="GHC.Driver.Types.html#mi_semantic_module"><span class="hs-identifier hs-var">mi_semantic_module</span></a></span><span> </span><span class="annot"><span class="annottext">ModIface
</span><a href="#local-6989586621681089440"><span class="hs-identifier hs-var">iface</span></a></span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-193"></span><span>            </span><span class="annot"><span class="annottext">sh_if_hole_subst :: ShHoleSubst
</span><a href="GHC.Iface.Rename.html#sh_if_hole_subst"><span class="hs-identifier hs-var">sh_if_hole_subst</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[(ModuleName, Module)] -&gt; ShHoleSubst
forall key elt. Uniquable key =&gt; [(key, elt)] -&gt; UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#listToUFM"><span class="hs-identifier hs-var">listToUFM</span></a></span><span> </span><span class="annot"><span class="annottext">[(ModuleName, Module)]
</span><a href="#local-6989586621681089439"><span class="hs-identifier hs-var">insts</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-194"></span><span>            </span><span class="annot"><span class="annottext">sh_if_shape :: Maybe NameShape
</span><a href="GHC.Iface.Rename.html#sh_if_shape"><span class="hs-identifier hs-var">sh_if_shape</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe NameShape
</span><a href="#local-6989586621681089438"><span class="hs-identifier hs-var">nsubst</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-195"></span><span>            </span><span class="annot"><span class="annottext">sh_if_errs :: IORef ErrorMessages
</span><a href="GHC.Iface.Rename.html#sh_if_errs"><span class="hs-identifier hs-var">sh_if_errs</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IORef ErrorMessages
</span><a href="#local-6989586621681089436"><span class="hs-identifier hs-var">errs_var</span></a></span><span>
</span><span id="line-196"></span><span>        </span><span class="hs-special">}</span><span>
</span><span id="line-197"></span><span>    </span><span class="hs-comment">-- Modeled off of 'initTc'</span><span>
</span><span id="line-198"></span><span>    </span><span id="local-6989586621681089419"><span class="annot"><span class="annottext">Either IOEnvFailure a
</span><a href="#local-6989586621681089419"><span class="hs-identifier hs-var">res</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Char
-&gt; HscEnv
-&gt; ShIfEnv
-&gt; ()
-&gt; TcRnIf ShIfEnv () (Either IOEnvFailure a)
-&gt; IO (Either IOEnvFailure a)
forall gbl lcl a.
Char -&gt; HscEnv -&gt; gbl -&gt; lcl -&gt; TcRnIf gbl lcl a -&gt; IO a
</span><a href="GHC.Tc.Utils.Monad.html#initTcRnIf"><span class="hs-identifier hs-var">initTcRnIf</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'c'</span></span><span> </span><span class="annot"><span class="annottext">HscEnv
</span><a href="#local-6989586621681089441"><span class="hs-identifier hs-var">hsc_env</span></a></span><span> </span><span class="annot"><span class="annottext">ShIfEnv
</span><a href="#local-6989586621681089426"><span class="hs-identifier hs-var">env</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(TcRnIf ShIfEnv () (Either IOEnvFailure a)
 -&gt; IO (Either IOEnvFailure a))
-&gt; TcRnIf ShIfEnv () (Either IOEnvFailure a)
-&gt; IO (Either IOEnvFailure a)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">ShIfM a -&gt; TcRnIf ShIfEnv () (Either IOEnvFailure a)
forall env r. IOEnv env r -&gt; IOEnv env (Either IOEnvFailure r)
</span><a href="GHC.Data.IOEnv.html#tryM"><span class="hs-identifier hs-var">tryM</span></a></span><span> </span><span class="annot"><span class="annottext">ShIfM a
</span><a href="#local-6989586621681089437"><span class="hs-identifier hs-var">do_this</span></a></span><span>
</span><span id="line-199"></span><span>    </span><span id="local-6989586621681089416"><span class="annot"><span class="annottext">ErrorMessages
</span><a href="#local-6989586621681089416"><span class="hs-identifier hs-var">msgs</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">IORef ErrorMessages -&gt; IO ErrorMessages
forall a. IORef a -&gt; IO a
</span><a href="../../base/src/GHC.IORef.html#readIORef"><span class="hs-identifier hs-var">readIORef</span></a></span><span> </span><span class="annot"><span class="annottext">IORef ErrorMessages
</span><a href="#local-6989586621681089436"><span class="hs-identifier hs-var">errs_var</span></a></span><span>
</span><span id="line-200"></span><span>    </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Either IOEnvFailure a
</span><a href="#local-6989586621681089419"><span class="hs-identifier hs-var">res</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-201"></span><span>        </span><span class="annot"><a href="../../base/src/Data.Either.html#Left"><span class="hs-identifier hs-type">Left</span></a></span><span> </span><span class="annot"><span class="annottext">IOEnvFailure
</span><span class="hs-identifier">_</span></span><span>                          </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Either ErrorMessages a -&gt; IO (Either ErrorMessages a)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ErrorMessages -&gt; Either ErrorMessages a
forall a b. a -&gt; Either a b
</span><a href="../../base/src/Data.Either.html#Left"><span class="hs-identifier hs-var">Left</span></a></span><span> </span><span class="annot"><span class="annottext">ErrorMessages
</span><a href="#local-6989586621681089416"><span class="hs-identifier hs-var">msgs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-202"></span><span>        </span><span class="annot"><a href="../../base/src/Data.Either.html#Right"><span class="hs-identifier hs-type">Right</span></a></span><span> </span><span id="local-6989586621681089414"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621681089414"><span class="hs-identifier hs-var">r</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool
</span><span class="hs-identifier hs-var">not</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ErrorMessages -&gt; Bool
forall a. Bag a -&gt; Bool
</span><a href="GHC.Data.Bag.html#isEmptyBag"><span class="hs-identifier hs-var">isEmptyBag</span></a></span><span> </span><span class="annot"><span class="annottext">ErrorMessages
</span><a href="#local-6989586621681089416"><span class="hs-identifier hs-var">msgs</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Either ErrorMessages a -&gt; IO (Either ErrorMessages a)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ErrorMessages -&gt; Either ErrorMessages a
forall a b. a -&gt; Either a b
</span><a href="../../base/src/Data.Either.html#Left"><span class="hs-identifier hs-var">Left</span></a></span><span> </span><span class="annot"><span class="annottext">ErrorMessages
</span><a href="#local-6989586621681089416"><span class="hs-identifier hs-var">msgs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-203"></span><span>                </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>             </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Either ErrorMessages a -&gt; IO (Either ErrorMessages a)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">a -&gt; Either ErrorMessages a
forall a b. b -&gt; Either a b
</span><a href="../../base/src/Data.Either.html#Right"><span class="hs-identifier hs-var">Right</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621681089414"><span class="hs-identifier hs-var">r</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-204"></span><span>
</span><span id="line-205"></span><span class="hs-comment">-- | Environment for 'ShIfM' monads.</span><span>
</span><span id="line-206"></span><span class="hs-keyword">data</span><span> </span><span id="ShIfEnv"><span class="annot"><a href="GHC.Iface.Rename.html#ShIfEnv"><span class="hs-identifier hs-var">ShIfEnv</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="ShIfEnv"><span class="annot"><a href="GHC.Iface.Rename.html#ShIfEnv"><span class="hs-identifier hs-var">ShIfEnv</span></a></span></span><span> </span><span class="hs-special">{</span><span>
</span><span id="line-207"></span><span>        </span><span class="hs-comment">-- What we are renaming the ModIface to.  It assumed that</span><span>
</span><span id="line-208"></span><span>        </span><span class="hs-comment">-- the original mi_module of the ModIface is</span><span>
</span><span id="line-209"></span><span>        </span><span class="hs-comment">-- @generalizeModule (mi_module iface)@.</span><span>
</span><span id="line-210"></span><span>        </span><span id="sh_if_module"><span class="annot"><span class="annottext">ShIfEnv -&gt; Module
</span><a href="GHC.Iface.Rename.html#sh_if_module"><span class="hs-identifier hs-var hs-var">sh_if_module</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Module"><span class="hs-identifier hs-type">Module</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-211"></span><span>        </span><span class="hs-comment">-- The semantic module that we are renaming to</span><span>
</span><span id="line-212"></span><span>        </span><span id="sh_if_semantic_module"><span class="annot"><span class="annottext">ShIfEnv -&gt; Module
</span><a href="GHC.Iface.Rename.html#sh_if_semantic_module"><span class="hs-identifier hs-var hs-var">sh_if_semantic_module</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Module"><span class="hs-identifier hs-type">Module</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-213"></span><span>        </span><span class="hs-comment">-- Cached hole substitution, e.g.</span><span>
</span><span id="line-214"></span><span>        </span><span class="hs-comment">-- @sh_if_hole_subst == listToUFM . unitIdInsts . moduleUnit . sh_if_module@</span><span>
</span><span id="line-215"></span><span>        </span><span id="sh_if_hole_subst"><span class="annot"><span class="annottext">ShIfEnv -&gt; ShHoleSubst
</span><a href="GHC.Iface.Rename.html#sh_if_hole_subst"><span class="hs-identifier hs-var hs-var">sh_if_hole_subst</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Unit.State.html#ShHoleSubst"><span class="hs-identifier hs-type">ShHoleSubst</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-216"></span><span>        </span><span class="hs-comment">-- An optional name substitution to be applied when renaming</span><span>
</span><span id="line-217"></span><span>        </span><span class="hs-comment">-- the names in the interface.  If this is 'Nothing', then</span><span>
</span><span id="line-218"></span><span>        </span><span class="hs-comment">-- we just load the target interface and look at the export</span><span>
</span><span id="line-219"></span><span>        </span><span class="hs-comment">-- list to determine the renaming.</span><span>
</span><span id="line-220"></span><span>        </span><span id="sh_if_shape"><span class="annot"><span class="annottext">ShIfEnv -&gt; Maybe NameShape
</span><a href="GHC.Iface.Rename.html#sh_if_shape"><span class="hs-identifier hs-var hs-var">sh_if_shape</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="GHC.Tc.Types.html#NameShape"><span class="hs-identifier hs-type">NameShape</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-221"></span><span>        </span><span class="hs-comment">-- Mutable reference to keep track of errors (similar to 'tcl_errs')</span><span>
</span><span id="line-222"></span><span>        </span><span id="sh_if_errs"><span class="annot"><span class="annottext">ShIfEnv -&gt; IORef ErrorMessages
</span><a href="GHC.Iface.Rename.html#sh_if_errs"><span class="hs-identifier hs-var hs-var">sh_if_errs</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.IORef.html#IORef"><span class="hs-identifier hs-type">IORef</span></a></span><span> </span><span class="annot"><a href="GHC.Utils.Error.html#ErrorMessages"><span class="hs-identifier hs-type">ErrorMessages</span></a></span><span>
</span><span id="line-223"></span><span>    </span><span class="hs-special">}</span><span>
</span><span id="line-224"></span><span>
</span><span id="line-225"></span><span class="annot"><a href="GHC.Iface.Rename.html#getHoleSubst"><span class="hs-identifier hs-type">getHoleSubst</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#ShIfM"><span class="hs-identifier hs-type">ShIfM</span></a></span><span> </span><span class="annot"><a href="GHC.Unit.State.html#ShHoleSubst"><span class="hs-identifier hs-type">ShHoleSubst</span></a></span><span>
</span><span id="line-226"></span><span id="getHoleSubst"><span class="annot"><span class="annottext">getHoleSubst :: ShIfM ShHoleSubst
</span><a href="GHC.Iface.Rename.html#getHoleSubst"><span class="hs-identifier hs-var hs-var">getHoleSubst</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(ShIfEnv -&gt; ShHoleSubst)
-&gt; IOEnv (Env ShIfEnv ()) ShIfEnv -&gt; ShIfM ShHoleSubst
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#fmap"><span class="hs-identifier hs-var">fmap</span></a></span><span> </span><span class="annot"><span class="annottext">ShIfEnv -&gt; ShHoleSubst
</span><a href="GHC.Iface.Rename.html#sh_if_hole_subst"><span class="hs-identifier hs-var hs-var">sh_if_hole_subst</span></a></span><span> </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) ShIfEnv
forall gbl lcl. TcRnIf gbl lcl gbl
</span><a href="GHC.Tc.Utils.Monad.html#getGblEnv"><span class="hs-identifier hs-var">getGblEnv</span></a></span><span>
</span><span id="line-227"></span><span>
</span><span id="line-228"></span><span class="hs-keyword">type</span><span> </span><span id="ShIfM"><span class="annot"><a href="GHC.Iface.Rename.html#ShIfM"><span class="hs-identifier hs-var">ShIfM</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Tc.Types.html#TcRnIf"><span class="hs-identifier hs-type">TcRnIf</span></a></span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#ShIfEnv"><span class="hs-identifier hs-type">ShIfEnv</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-229"></span><span class="hs-keyword">type</span><span> </span><span id="Rename"><span class="annot"><a href="GHC.Iface.Rename.html#Rename"><span class="hs-identifier hs-var">Rename</span></a></span></span><span> </span><span id="local-6989586621681089411"><span class="annot"><a href="#local-6989586621681089411"><span class="hs-identifier hs-type">a</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="#local-6989586621681089411"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#ShIfM"><span class="hs-identifier hs-type">ShIfM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621681089411"><span class="hs-identifier hs-type">a</span></a></span><span>
</span><span id="line-230"></span><span>
</span><span id="line-231"></span><span>
</span><span id="line-232"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnModule"><span class="hs-identifier hs-type">rnModule</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#Rename"><span class="hs-identifier hs-type">Rename</span></a></span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Module"><span class="hs-identifier hs-type">Module</span></a></span><span>
</span><span id="line-233"></span><span id="rnModule"><span class="annot"><span class="annottext">rnModule :: Rename Module
</span><a href="GHC.Iface.Rename.html#rnModule"><span class="hs-identifier hs-var hs-var">rnModule</span></a></span></span><span> </span><span id="local-6989586621681089410"><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681089410"><span class="hs-identifier hs-var">mod</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-234"></span><span>    </span><span id="local-6989586621681089409"><span class="annot"><span class="annottext">ShHoleSubst
</span><a href="#local-6989586621681089409"><span class="hs-identifier hs-var">hmap</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">ShIfM ShHoleSubst
</span><a href="GHC.Iface.Rename.html#getHoleSubst"><span class="hs-identifier hs-var">getHoleSubst</span></a></span><span>
</span><span id="line-235"></span><span>    </span><span id="local-6989586621681089408"><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621681089408"><span class="hs-identifier hs-var">dflags</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) DynFlags
forall (m :: * -&gt; *). HasDynFlags m =&gt; m DynFlags
</span><a href="GHC.Driver.Session.html#getDynFlags"><span class="hs-identifier hs-var">getDynFlags</span></a></span><span>
</span><span id="line-236"></span><span>    </span><span class="annot"><span class="annottext">Rename Module
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">UnitState -&gt; ShHoleSubst -&gt; Module -&gt; Module
</span><a href="GHC.Unit.State.html#renameHoleModule"><span class="hs-identifier hs-var">renameHoleModule</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">DynFlags -&gt; UnitState
</span><a href="GHC.Driver.Session.html#unitState"><span class="hs-identifier hs-var hs-var">unitState</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621681089408"><span class="hs-identifier hs-var">dflags</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">ShHoleSubst
</span><a href="#local-6989586621681089409"><span class="hs-identifier hs-var">hmap</span></a></span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681089410"><span class="hs-identifier hs-var">mod</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-237"></span><span>
</span><span id="line-238"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnAvailInfo"><span class="hs-identifier hs-type">rnAvailInfo</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#Rename"><span class="hs-identifier hs-type">Rename</span></a></span><span> </span><span class="annot"><a href="GHC.Types.Avail.html#AvailInfo"><span class="hs-identifier hs-type">AvailInfo</span></a></span><span>
</span><span id="line-239"></span><span id="rnAvailInfo"><span class="annot"><span class="annottext">rnAvailInfo :: AvailInfo -&gt; IOEnv (Env ShIfEnv ()) AvailInfo
</span><a href="GHC.Iface.Rename.html#rnAvailInfo"><span class="hs-identifier hs-var hs-var">rnAvailInfo</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Avail.html#Avail"><span class="hs-identifier hs-type">Avail</span></a></span><span> </span><span id="local-6989586621681089406"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089406"><span class="hs-identifier hs-var">n</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Name -&gt; AvailInfo
</span><a href="GHC.Types.Avail.html#Avail"><span class="hs-identifier hs-var">Avail</span></a></span><span> </span><span class="annot"><span class="annottext">(Name -&gt; AvailInfo)
-&gt; IOEnv (Env ShIfEnv ()) Name -&gt; IOEnv (Env ShIfEnv ()) AvailInfo
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; IOEnv (Env ShIfEnv ()) Name
</span><a href="GHC.Iface.Rename.html#rnIfaceGlobal"><span class="hs-identifier hs-var">rnIfaceGlobal</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089406"><span class="hs-identifier hs-var">n</span></a></span><span>
</span><span id="line-240"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnAvailInfo"><span class="hs-identifier hs-var">rnAvailInfo</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Avail.html#AvailTC"><span class="hs-identifier hs-type">AvailTC</span></a></span><span> </span><span id="local-6989586621681089402"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089402"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span id="local-6989586621681089401"><span class="annot"><span class="annottext">[Name]
</span><a href="#local-6989586621681089401"><span class="hs-identifier hs-var">ns</span></a></span></span><span> </span><span id="local-6989586621681089400"><span class="annot"><span class="annottext">[FieldLabel]
</span><a href="#local-6989586621681089400"><span class="hs-identifier hs-var">fs</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-241"></span><span>    </span><span class="hs-comment">-- Why don't we rnIfaceGlobal the availName itself?  It may not</span><span>
</span><span id="line-242"></span><span>    </span><span class="hs-comment">-- actually be exported by the module it putatively is from, in</span><span>
</span><span id="line-243"></span><span>    </span><span class="hs-comment">-- which case we won't be able to tell what the name actually</span><span>
</span><span id="line-244"></span><span>    </span><span class="hs-comment">-- is.  But for the availNames they MUST be exported, so they</span><span>
</span><span id="line-245"></span><span>    </span><span class="hs-comment">-- will rename fine.</span><span>
</span><span id="line-246"></span><span>    </span><span id="local-6989586621681089399"><span class="annot"><span class="annottext">[Name]
</span><a href="#local-6989586621681089399"><span class="hs-identifier hs-var">ns'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(Name -&gt; IOEnv (Env ShIfEnv ()) Name)
-&gt; [Name] -&gt; IOEnv (Env ShIfEnv ()) [Name]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; IOEnv (Env ShIfEnv ()) Name
</span><a href="GHC.Iface.Rename.html#rnIfaceGlobal"><span class="hs-identifier hs-var">rnIfaceGlobal</span></a></span><span> </span><span class="annot"><span class="annottext">[Name]
</span><a href="#local-6989586621681089401"><span class="hs-identifier hs-var">ns</span></a></span><span>
</span><span id="line-247"></span><span>    </span><span id="local-6989586621681089398"><span class="annot"><span class="annottext">[FieldLabel]
</span><a href="#local-6989586621681089398"><span class="hs-identifier hs-var">fs'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(FieldLabel -&gt; IOEnv (Env ShIfEnv ()) FieldLabel)
-&gt; [FieldLabel] -&gt; IOEnv (Env ShIfEnv ()) [FieldLabel]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="annot"><span class="annottext">FieldLabel -&gt; IOEnv (Env ShIfEnv ()) FieldLabel
</span><a href="GHC.Iface.Rename.html#rnFieldLabel"><span class="hs-identifier hs-var">rnFieldLabel</span></a></span><span> </span><span class="annot"><span class="annottext">[FieldLabel]
</span><a href="#local-6989586621681089400"><span class="hs-identifier hs-var">fs</span></a></span><span>
</span><span id="line-248"></span><span>    </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">[Name]
</span><a href="#local-6989586621681089399"><span class="hs-identifier hs-var">ns'</span></a></span><span> </span><span class="annot"><span class="annottext">[Name] -&gt; [Name] -&gt; [Name]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">(FieldLabel -&gt; Name) -&gt; [FieldLabel] -&gt; [Name]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">FieldLabel -&gt; Name
forall a. FieldLbl a -&gt; a
</span><a href="GHC.Types.FieldLabel.html#flSelector"><span class="hs-identifier hs-var hs-var">flSelector</span></a></span><span> </span><span class="annot"><span class="annottext">[FieldLabel]
</span><a href="#local-6989586621681089398"><span class="hs-identifier hs-var">fs'</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-249"></span><span>        </span><span class="hs-special">[</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; IOEnv (Env ShIfEnv ()) AvailInfo
forall a. String -&gt; a
</span><a href="GHC.Utils.Panic.Plain.html#panic"><span class="hs-identifier hs-var">panic</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;rnAvailInfoEmpty AvailInfo&quot;</span></span><span>
</span><span id="line-250"></span><span>        </span><span class="hs-special">(</span><span id="local-6989586621681089394"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089394"><span class="hs-identifier hs-var">rep</span></a></span></span><span class="annot"><span class="hs-glyph hs-type">:</span></span><span id="local-6989586621681089393"><span class="annot"><span class="annottext">[Name]
</span><a href="#local-6989586621681089393"><span class="hs-identifier hs-var">rest</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">ASSERT2</span><span class="hs-special">(</span><span> </span><span class="hs-identifier">all</span><span> </span><span class="hs-special">(</span><span class="hs-special">(</span><span class="hs-operator">==</span><span> </span><span class="hs-identifier">nameModule</span><span> </span><span class="hs-identifier">rep</span><span class="hs-special">)</span><span> </span><span class="hs-operator">.</span><span> </span><span class="hs-identifier">nameModule</span><span class="hs-special">)</span><span> </span><span class="hs-identifier">rest</span><span class="hs-special">,</span><span> </span><span class="hs-identifier">ppr</span><span> </span><span class="hs-identifier">rep</span><span> </span><span class="hs-operator">$$</span><span> </span><span class="hs-identifier">hcat</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">map</span><span> </span><span class="hs-identifier">ppr</span><span> </span><span class="hs-identifier">rest</span><span class="hs-special">)</span><span> </span><span class="hs-special">)</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-251"></span><span>                         </span><span class="hs-identifier">n'</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="hs-identifier">setNameModule</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">Just</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">nameModule</span><span> </span><span class="hs-identifier">rep</span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-identifier">n</span><span>
</span><span id="line-252"></span><span>                         </span><span class="hs-identifier">return</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">AvailTC</span><span> </span><span class="hs-identifier">n'</span><span> </span><span class="hs-identifier">ns'</span><span> </span><span class="hs-identifier">fs'</span><span class="hs-special">)</span><span>
</span><span id="line-253"></span><span>
</span><span id="line-254"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnFieldLabel"><span class="hs-identifier hs-type">rnFieldLabel</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#Rename"><span class="hs-identifier hs-type">Rename</span></a></span><span> </span><span class="annot"><a href="GHC.Types.FieldLabel.html#FieldLabel"><span class="hs-identifier hs-type">FieldLabel</span></a></span><span>
</span><span id="line-255"></span><span id="rnFieldLabel"><span class="annot"><span class="annottext">rnFieldLabel :: FieldLabel -&gt; IOEnv (Env ShIfEnv ()) FieldLabel
</span><a href="GHC.Iface.Rename.html#rnFieldLabel"><span class="hs-identifier hs-var hs-var">rnFieldLabel</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.FieldLabel.html#FieldLabel"><span class="hs-identifier hs-type">FieldLabel</span></a></span><span> </span><span id="local-6989586621681089381"><span class="annot"><span class="annottext">FieldLabelString
</span><a href="#local-6989586621681089381"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span id="local-6989586621681089380"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681089380"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span id="local-6989586621681089379"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089379"><span class="hs-identifier hs-var">sel</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-256"></span><span>    </span><span id="local-6989586621681089378"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089378"><span class="hs-identifier hs-var">sel'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Name -&gt; IOEnv (Env ShIfEnv ()) Name
</span><a href="GHC.Iface.Rename.html#rnIfaceGlobal"><span class="hs-identifier hs-var">rnIfaceGlobal</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089379"><span class="hs-identifier hs-var">sel</span></a></span><span>
</span><span id="line-257"></span><span>    </span><span class="annot"><span class="annottext">FieldLabel -&gt; IOEnv (Env ShIfEnv ()) FieldLabel
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">FieldLabelString -&gt; Bool -&gt; Name -&gt; FieldLabel
forall a. FieldLabelString -&gt; Bool -&gt; a -&gt; FieldLbl a
</span><a href="GHC.Types.FieldLabel.html#FieldLabel"><span class="hs-identifier hs-var">FieldLabel</span></a></span><span> </span><span class="annot"><span class="annottext">FieldLabelString
</span><a href="#local-6989586621681089381"><span class="hs-identifier hs-var">l</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681089380"><span class="hs-identifier hs-var">b</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089378"><span class="hs-identifier hs-var">sel'</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-258"></span><span>
</span><span id="line-259"></span><span>
</span><span id="line-260"></span><span>
</span><span id="line-261"></span><span>
</span><span id="line-262"></span><span class="hs-comment">-- | The key function.  This gets called on every Name embedded</span><span>
</span><span id="line-263"></span><span class="hs-comment">-- inside a ModIface.  Our job is to take a Name from some</span><span>
</span><span id="line-264"></span><span class="hs-comment">-- generalized unit ID p[A=\&lt;A&gt;, B=\&lt;B&gt;], and change</span><span>
</span><span id="line-265"></span><span class="hs-comment">-- it to the correct name for a (partially) instantiated unit</span><span>
</span><span id="line-266"></span><span class="hs-comment">-- ID, e.g. p[A=q[]:A, B=\&lt;B&gt;].</span><span>
</span><span id="line-267"></span><span class="hs-comment">--</span><span>
</span><span id="line-268"></span><span class="hs-comment">-- There are two important things to do:</span><span>
</span><span id="line-269"></span><span class="hs-comment">--</span><span>
</span><span id="line-270"></span><span class="hs-comment">-- If a hole is substituted with a real module implementation,</span><span>
</span><span id="line-271"></span><span class="hs-comment">-- we need to look at that actual implementation to determine what</span><span>
</span><span id="line-272"></span><span class="hs-comment">-- the true identity of this name should be.  We'll do this by</span><span>
</span><span id="line-273"></span><span class="hs-comment">-- loading that module's interface and looking at the mi_exports.</span><span>
</span><span id="line-274"></span><span class="hs-comment">--</span><span>
</span><span id="line-275"></span><span class="hs-comment">-- However, there is one special exception: when we are loading</span><span>
</span><span id="line-276"></span><span class="hs-comment">-- the interface of a requirement.  In this case, we may not have</span><span>
</span><span id="line-277"></span><span class="hs-comment">-- the &quot;implementing&quot; interface, because we are reading this</span><span>
</span><span id="line-278"></span><span class="hs-comment">-- interface precisely to &quot;merge it in&quot;.</span><span>
</span><span id="line-279"></span><span class="hs-comment">--</span><span>
</span><span id="line-280"></span><span class="hs-comment">--     External case:</span><span>
</span><span id="line-281"></span><span class="hs-comment">--         p[A=\&lt;B&gt;]:A (and thisUnitId is something else)</span><span>
</span><span id="line-282"></span><span class="hs-comment">--     We are loading this in order to determine B.hi!  So</span><span>
</span><span id="line-283"></span><span class="hs-comment">--     don't load B.hi to find the exports.</span><span>
</span><span id="line-284"></span><span class="hs-comment">--</span><span>
</span><span id="line-285"></span><span class="hs-comment">--     Local case:</span><span>
</span><span id="line-286"></span><span class="hs-comment">--         p[A=\&lt;A&gt;]:A (and thisUnitId is p[A=\&lt;A&gt;])</span><span>
</span><span id="line-287"></span><span class="hs-comment">--     This should not happen, because the rename is not necessary</span><span>
</span><span id="line-288"></span><span class="hs-comment">--     in this case, but if it does we shouldn't load A.hi!</span><span>
</span><span id="line-289"></span><span class="hs-comment">--</span><span>
</span><span id="line-290"></span><span class="hs-comment">-- Compare me with 'tcIfaceGlobal'!</span><span>
</span><span id="line-291"></span><span>
</span><span id="line-292"></span><span class="hs-comment">-- In effect, this function needs compute the name substitution on the</span><span>
</span><span id="line-293"></span><span class="hs-comment">-- fly.  What it has is the name that we would like to substitute.</span><span>
</span><span id="line-294"></span><span class="hs-comment">-- If the name is not a hole name {M.x} (e.g. isHoleModule) then</span><span>
</span><span id="line-295"></span><span class="hs-comment">-- no renaming can take place (although the inner hole structure must</span><span>
</span><span id="line-296"></span><span class="hs-comment">-- be updated to account for the hole module renaming.)</span><span>
</span><span id="line-297"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceGlobal"><span class="hs-identifier hs-type">rnIfaceGlobal</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Name.html#Name"><span class="hs-identifier hs-type">Name</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#ShIfM"><span class="hs-identifier hs-type">ShIfM</span></a></span><span> </span><span class="annot"><a href="GHC.Types.Name.html#Name"><span class="hs-identifier hs-type">Name</span></a></span><span>
</span><span id="line-298"></span><span id="rnIfaceGlobal"><span class="annot"><span class="annottext">rnIfaceGlobal :: Name -&gt; IOEnv (Env ShIfEnv ()) Name
</span><a href="GHC.Iface.Rename.html#rnIfaceGlobal"><span class="hs-identifier hs-var hs-var">rnIfaceGlobal</span></a></span></span><span> </span><span id="local-6989586621681089377"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089377"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-299"></span><span>    </span><span id="local-6989586621681089376"><span class="annot"><span class="annottext">HscEnv
</span><a href="#local-6989586621681089376"><span class="hs-identifier hs-var">hsc_env</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">TcRnIf ShIfEnv () HscEnv
forall gbl lcl. TcRnIf gbl lcl HscEnv
</span><a href="GHC.Tc.Utils.Monad.html#getTopEnv"><span class="hs-identifier hs-var">getTopEnv</span></a></span><span>
</span><span id="line-300"></span><span>    </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681089375"><span class="annot"><span class="annottext">dflags :: DynFlags
</span><a href="#local-6989586621681089375"><span class="hs-identifier hs-var hs-var">dflags</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HscEnv -&gt; DynFlags
</span><a href="GHC.Driver.Types.html#hsc_dflags"><span class="hs-identifier hs-var hs-var">hsc_dflags</span></a></span><span> </span><span class="annot"><span class="annottext">HscEnv
</span><a href="#local-6989586621681089376"><span class="hs-identifier hs-var">hsc_env</span></a></span><span>
</span><span id="line-301"></span><span>    </span><span id="local-6989586621681089374"><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681089374"><span class="hs-identifier hs-var">iface_semantic_mod</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(ShIfEnv -&gt; Module)
-&gt; IOEnv (Env ShIfEnv ()) ShIfEnv -&gt; IOEnv (Env ShIfEnv ()) Module
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#fmap"><span class="hs-identifier hs-var">fmap</span></a></span><span> </span><span class="annot"><span class="annottext">ShIfEnv -&gt; Module
</span><a href="GHC.Iface.Rename.html#sh_if_semantic_module"><span class="hs-identifier hs-var hs-var">sh_if_semantic_module</span></a></span><span> </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) ShIfEnv
forall gbl lcl. TcRnIf gbl lcl gbl
</span><a href="GHC.Tc.Utils.Monad.html#getGblEnv"><span class="hs-identifier hs-var">getGblEnv</span></a></span><span>
</span><span id="line-302"></span><span>    </span><span id="local-6989586621681089373"><span class="annot"><span class="annottext">Maybe NameShape
</span><a href="#local-6989586621681089373"><span class="hs-identifier hs-var">mb_nsubst</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(ShIfEnv -&gt; Maybe NameShape)
-&gt; IOEnv (Env ShIfEnv ()) ShIfEnv
-&gt; IOEnv (Env ShIfEnv ()) (Maybe NameShape)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#fmap"><span class="hs-identifier hs-var">fmap</span></a></span><span> </span><span class="annot"><span class="annottext">ShIfEnv -&gt; Maybe NameShape
</span><a href="GHC.Iface.Rename.html#sh_if_shape"><span class="hs-identifier hs-var hs-var">sh_if_shape</span></a></span><span> </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) ShIfEnv
forall gbl lcl. TcRnIf gbl lcl gbl
</span><a href="GHC.Tc.Utils.Monad.html#getGblEnv"><span class="hs-identifier hs-var">getGblEnv</span></a></span><span>
</span><span id="line-303"></span><span>    </span><span id="local-6989586621681089372"><span class="annot"><span class="annottext">ShHoleSubst
</span><a href="#local-6989586621681089372"><span class="hs-identifier hs-var">hmap</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">ShIfM ShHoleSubst
</span><a href="GHC.Iface.Rename.html#getHoleSubst"><span class="hs-identifier hs-var">getHoleSubst</span></a></span><span>
</span><span id="line-304"></span><span>    </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681089370"><span class="annot"><span class="annottext">m :: Module
</span><a href="#local-6989586621681089370"><span class="hs-identifier hs-var hs-var">m</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HasDebugCallStack =&gt; Name -&gt; Module
Name -&gt; Module
</span><a href="GHC.Types.Name.html#nameModule"><span class="hs-identifier hs-var">nameModule</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089377"><span class="hs-identifier hs-var">n</span></a></span><span>
</span><span id="line-305"></span><span>        </span><span id="local-6989586621681089369"><span class="annot"><span class="annottext">m' :: Module
</span><a href="#local-6989586621681089369"><span class="hs-identifier hs-var hs-var">m'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UnitState -&gt; ShHoleSubst -&gt; Module -&gt; Module
</span><a href="GHC.Unit.State.html#renameHoleModule"><span class="hs-identifier hs-var">renameHoleModule</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">DynFlags -&gt; UnitState
</span><a href="GHC.Driver.Session.html#unitState"><span class="hs-identifier hs-var hs-var">unitState</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621681089375"><span class="hs-identifier hs-var">dflags</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">ShHoleSubst
</span><a href="#local-6989586621681089372"><span class="hs-identifier hs-var">hmap</span></a></span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681089370"><span class="hs-identifier hs-var">m</span></a></span><span>
</span><span id="line-306"></span><span>    </span><span class="hs-keyword">case</span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-307"></span><span>       </span><span class="hs-comment">-- Did we encounter {A.T} while renaming p[A=&lt;B&gt;]:A? If so,</span><span>
</span><span id="line-308"></span><span>       </span><span class="hs-comment">-- do NOT assume B.hi is available.</span><span>
</span><span id="line-309"></span><span>       </span><span class="hs-comment">-- In this case, rename {A.T} to {B.T} but don't look up exports.</span><span>
</span><span id="line-310"></span><span>     </span><span class="annot"><span class="annottext">()
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681089369"><span class="hs-identifier hs-var">m'</span></a></span><span> </span><span class="annot"><span class="annottext">Module -&gt; Module -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681089374"><span class="hs-identifier hs-var">iface_semantic_mod</span></a></span><span>
</span><span id="line-311"></span><span>       </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Module -&gt; Bool
forall u. GenModule (GenUnit u) -&gt; Bool
</span><a href="GHC.Unit.Module.html#isHoleModule"><span class="hs-identifier hs-var">isHoleModule</span></a></span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681089369"><span class="hs-identifier hs-var">m'</span></a></span><span>
</span><span id="line-312"></span><span>      </span><span class="hs-comment">-- NB: this could be Nothing for computeExports, we have</span><span>
</span><span id="line-313"></span><span>      </span><span class="hs-comment">-- nothing to say.</span><span>
</span><span id="line-314"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">do</span><span> </span><span id="local-6989586621681089368"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089368"><span class="hs-identifier hs-var">n'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Maybe Module -&gt; Name -&gt; IOEnv (Env ShIfEnv ()) Name
forall m n. Maybe Module -&gt; Name -&gt; TcRnIf m n Name
</span><a href="GHC.Iface.Env.html#setNameModule"><span class="hs-identifier hs-var">setNameModule</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Module -&gt; Maybe Module
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681089369"><span class="hs-identifier hs-var">m'</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089377"><span class="hs-identifier hs-var">n</span></a></span><span>
</span><span id="line-315"></span><span>            </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Maybe NameShape
</span><a href="#local-6989586621681089373"><span class="hs-identifier hs-var">mb_nsubst</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-316"></span><span>                </span><span class="annot"><span class="annottext">Maybe NameShape
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Name -&gt; IOEnv (Env ShIfEnv ()) Name
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089368"><span class="hs-identifier hs-var">n'</span></a></span><span>
</span><span id="line-317"></span><span>                </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621681089367"><span class="annot"><span class="annottext">NameShape
</span><a href="#local-6989586621681089367"><span class="hs-identifier hs-var">nsubst</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-318"></span><span>                    </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">NameShape -&gt; Name -&gt; Maybe Name
</span><a href="GHC.Types.Name.Shape.html#maybeSubstNameShape"><span class="hs-identifier hs-var">maybeSubstNameShape</span></a></span><span> </span><span class="annot"><span class="annottext">NameShape
</span><a href="#local-6989586621681089367"><span class="hs-identifier hs-var">nsubst</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089368"><span class="hs-identifier hs-var">n'</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-319"></span><span>                        </span><span class="hs-comment">-- TODO: would love to have context</span><span>
</span><span id="line-320"></span><span>                        </span><span class="hs-comment">-- TODO: This will give an unpleasant message if n'</span><span>
</span><span id="line-321"></span><span>                        </span><span class="hs-comment">-- is a constructor; then we'll suggest adding T</span><span>
</span><span id="line-322"></span><span>                        </span><span class="hs-comment">-- but it won't work.</span><span>
</span><span id="line-323"></span><span>                        </span><span class="annot"><span class="annottext">Maybe Name
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; IOEnv (Env ShIfEnv ()) Name
forall a. SDoc -&gt; ShIfM a
</span><a href="GHC.Iface.Rename.html#failWithRn"><span class="hs-identifier hs-var">failWithRn</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; IOEnv (Env ShIfEnv ()) Name)
-&gt; SDoc -&gt; IOEnv (Env ShIfEnv ()) Name
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="hs-special">[</span><span>
</span><span id="line-324"></span><span>                            </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;The identifier&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">OccName -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Name -&gt; OccName
forall name. HasOccName name =&gt; name -&gt; OccName
</span><a href="GHC.Types.Name.Occurrence.html#occName"><span class="hs-identifier hs-var">occName</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089368"><span class="hs-identifier hs-var">n'</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span>
</span><span id="line-325"></span><span>                                </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;does not exist in the local signature.&quot;</span></span><span class="hs-special">,</span><span>
</span><span id="line-326"></span><span>                            </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Try adding it to the export list of the hsig file.&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-327"></span><span>                            </span><span class="hs-special">]</span><span>
</span><span id="line-328"></span><span>                        </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621681089361"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089361"><span class="hs-identifier hs-var">n''</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Name -&gt; IOEnv (Env ShIfEnv ()) Name
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089361"><span class="hs-identifier hs-var">n''</span></a></span><span>
</span><span id="line-329"></span><span>       </span><span class="hs-comment">-- Fastpath: we are renaming p[H=&lt;H&gt;]:A.T, in which case the</span><span>
</span><span id="line-330"></span><span>       </span><span class="hs-comment">-- export list is irrelevant.</span><span>
</span><span id="line-331"></span><span>       </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool
</span><span class="hs-identifier hs-var">not</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Module -&gt; Bool
forall u. GenModule (GenUnit u) -&gt; Bool
</span><a href="GHC.Unit.Module.html#isHoleModule"><span class="hs-identifier hs-var">isHoleModule</span></a></span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681089370"><span class="hs-identifier hs-var">m</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-332"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Maybe Module -&gt; Name -&gt; IOEnv (Env ShIfEnv ()) Name
forall m n. Maybe Module -&gt; Name -&gt; TcRnIf m n Name
</span><a href="GHC.Iface.Env.html#setNameModule"><span class="hs-identifier hs-var">setNameModule</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Module -&gt; Maybe Module
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681089369"><span class="hs-identifier hs-var">m'</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089377"><span class="hs-identifier hs-var">n</span></a></span><span>
</span><span id="line-333"></span><span>       </span><span class="hs-comment">-- The substitution was from &lt;A&gt; to p[]:A.</span><span>
</span><span id="line-334"></span><span>       </span><span class="hs-comment">-- But this does not mean {A.T} goes to p[]:A.T:</span><span>
</span><span id="line-335"></span><span>       </span><span class="hs-comment">-- p[]:A may reexport T from somewhere else.  Do the name</span><span>
</span><span id="line-336"></span><span>       </span><span class="hs-comment">-- substitution.  Furthermore, we need</span><span>
</span><span id="line-337"></span><span>       </span><span class="hs-comment">-- to make sure we pick the accurate name NOW,</span><span>
</span><span id="line-338"></span><span>       </span><span class="hs-comment">-- or we might accidentally reject a merge.</span><span>
</span><span id="line-339"></span><span>       </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>
</span><span id="line-340"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">do</span><span> </span><span class="hs-comment">-- Make sure we look up the local interface if substitution</span><span>
</span><span id="line-341"></span><span>            </span><span class="hs-comment">-- went from &lt;A&gt; to &lt;B&gt;.</span><span>
</span><span id="line-342"></span><span>            </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681089360"><span class="annot"><span class="annottext">m'' :: Module
</span><a href="#local-6989586621681089360"><span class="hs-identifier hs-var hs-var">m''</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">Module -&gt; Bool
forall u. GenModule (GenUnit u) -&gt; Bool
</span><a href="GHC.Unit.Module.html#isHoleModule"><span class="hs-identifier hs-var">isHoleModule</span></a></span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681089369"><span class="hs-identifier hs-var">m'</span></a></span><span>
</span><span id="line-343"></span><span>                        </span><span class="hs-comment">-- Pull out the local guy!!</span><span>
</span><span id="line-344"></span><span>                        </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">DynFlags -&gt; ModuleName -&gt; Module
</span><a href="GHC.Driver.Session.html#mkHomeModule"><span class="hs-identifier hs-var">mkHomeModule</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621681089375"><span class="hs-identifier hs-var">dflags</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Module -&gt; ModuleName
forall unit. GenModule unit -&gt; ModuleName
</span><a href="GHC.Unit.Types.html#moduleName"><span class="hs-identifier hs-var hs-var">moduleName</span></a></span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681089369"><span class="hs-identifier hs-var">m'</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-345"></span><span>                        </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681089369"><span class="hs-identifier hs-var">m'</span></a></span><span>
</span><span id="line-346"></span><span>            </span><span id="local-6989586621681089357"><span class="annot"><span class="annottext">ModIface
</span><a href="#local-6989586621681089357"><span class="hs-identifier hs-var">iface</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">IO ModIface -&gt; ShIfM ModIface
forall (m :: * -&gt; *) a. MonadIO m =&gt; IO a -&gt; m a
</span><a href="../../base/src/Control.Monad.IO.Class.html#liftIO"><span class="hs-identifier hs-var">liftIO</span></a></span><span> </span><span class="annot"><span class="annottext">(IO ModIface -&gt; ShIfM ModIface)
-&gt; (IfG ModIface -&gt; IO ModIface) -&gt; IfG ModIface -&gt; ShIfM ModIface
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; HscEnv -&gt; IfG ModIface -&gt; IO ModIface
forall a. SDoc -&gt; HscEnv -&gt; IfG a -&gt; IO a
</span><a href="GHC.Tc.Utils.Monad.html#initIfaceCheck"><span class="hs-identifier hs-var">initIfaceCheck</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;rnIfaceGlobal&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">HscEnv
</span><a href="#local-6989586621681089376"><span class="hs-identifier hs-var">hsc_env</span></a></span><span>
</span><span id="line-347"></span><span>                            </span><span class="annot"><span class="annottext">(IfG ModIface -&gt; ShIfM ModIface) -&gt; IfG ModIface -&gt; ShIfM ModIface
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; Module -&gt; IfG ModIface
forall lcl. SDoc -&gt; Module -&gt; IfM lcl ModIface
</span><a href="GHC.Iface.Load.html#loadSysInterface"><span class="hs-identifier hs-var">loadSysInterface</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;rnIfaceGlobal&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681089360"><span class="hs-identifier hs-var">m''</span></a></span><span>
</span><span id="line-348"></span><span>            </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681089356"><span class="annot"><span class="annottext">nsubst :: NameShape
</span><a href="#local-6989586621681089356"><span class="hs-identifier hs-var hs-var">nsubst</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ModuleName -&gt; [AvailInfo] -&gt; NameShape
</span><a href="GHC.Types.Name.Shape.html#mkNameShape"><span class="hs-identifier hs-var">mkNameShape</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Module -&gt; ModuleName
forall unit. GenModule unit -&gt; ModuleName
</span><a href="GHC.Unit.Types.html#moduleName"><span class="hs-identifier hs-var hs-var">moduleName</span></a></span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681089370"><span class="hs-identifier hs-var">m</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ModIface -&gt; [AvailInfo]
forall (phase :: ModIfacePhase). ModIface_ phase -&gt; [AvailInfo]
</span><a href="GHC.Driver.Types.html#mi_exports"><span class="hs-identifier hs-var hs-var">mi_exports</span></a></span><span> </span><span class="annot"><span class="annottext">ModIface
</span><a href="#local-6989586621681089357"><span class="hs-identifier hs-var">iface</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-349"></span><span>            </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">NameShape -&gt; Name -&gt; Maybe Name
</span><a href="GHC.Types.Name.Shape.html#maybeSubstNameShape"><span class="hs-identifier hs-var">maybeSubstNameShape</span></a></span><span> </span><span class="annot"><span class="annottext">NameShape
</span><a href="#local-6989586621681089356"><span class="hs-identifier hs-var">nsubst</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089377"><span class="hs-identifier hs-var">n</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-350"></span><span>                </span><span class="annot"><span class="annottext">Maybe Name
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; IOEnv (Env ShIfEnv ()) Name
forall a. SDoc -&gt; ShIfM a
</span><a href="GHC.Iface.Rename.html#failWithRn"><span class="hs-identifier hs-var">failWithRn</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; IOEnv (Env ShIfEnv ()) Name)
-&gt; SDoc -&gt; IOEnv (Env ShIfEnv ()) Name
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="hs-special">[</span><span>
</span><span id="line-351"></span><span>                    </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;The identifier&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">OccName -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Name -&gt; OccName
forall name. HasOccName name =&gt; name -&gt; OccName
</span><a href="GHC.Types.Name.Occurrence.html#occName"><span class="hs-identifier hs-var">occName</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089377"><span class="hs-identifier hs-var">n</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span>
</span><span id="line-352"></span><span>                        </span><span class="hs-comment">-- NB: report m' because it's more user-friendly</span><span>
</span><span id="line-353"></span><span>                        </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;does not exist in the signature for&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Module -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681089369"><span class="hs-identifier hs-var">m'</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-354"></span><span>                    </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Try adding it to the export list in that hsig file.&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-355"></span><span>                    </span><span class="hs-special">]</span><span>
</span><span id="line-356"></span><span>                </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621681089354"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089354"><span class="hs-identifier hs-var">n'</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Name -&gt; IOEnv (Env ShIfEnv ()) Name
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089354"><span class="hs-identifier hs-var">n'</span></a></span><span>
</span><span id="line-357"></span><span>
</span><span id="line-358"></span><span class="hs-comment">-- | Rename an implicit name, e.g., a DFun or coercion axiom.</span><span>
</span><span id="line-359"></span><span class="hs-comment">-- Here is where we ensure that DFuns have the correct module as described in</span><span>
</span><span id="line-360"></span><span class="hs-comment">-- Note [rnIfaceNeverExported].</span><span>
</span><span id="line-361"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceNeverExported"><span class="hs-identifier hs-type">rnIfaceNeverExported</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Name.html#Name"><span class="hs-identifier hs-type">Name</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#ShIfM"><span class="hs-identifier hs-type">ShIfM</span></a></span><span> </span><span class="annot"><a href="GHC.Types.Name.html#Name"><span class="hs-identifier hs-type">Name</span></a></span><span>
</span><span id="line-362"></span><span id="rnIfaceNeverExported"><span class="annot"><span class="annottext">rnIfaceNeverExported :: Name -&gt; IOEnv (Env ShIfEnv ()) Name
</span><a href="GHC.Iface.Rename.html#rnIfaceNeverExported"><span class="hs-identifier hs-var hs-var">rnIfaceNeverExported</span></a></span></span><span> </span><span id="local-6989586621681089352"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089352"><span class="hs-identifier hs-var">name</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-363"></span><span>    </span><span id="local-6989586621681089351"><span class="annot"><span class="annottext">ShHoleSubst
</span><a href="#local-6989586621681089351"><span class="hs-identifier hs-var">hmap</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">ShIfM ShHoleSubst
</span><a href="GHC.Iface.Rename.html#getHoleSubst"><span class="hs-identifier hs-var">getHoleSubst</span></a></span><span>
</span><span id="line-364"></span><span>    </span><span id="local-6989586621681089350"><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621681089350"><span class="hs-identifier hs-var">dflags</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) DynFlags
forall (m :: * -&gt; *). HasDynFlags m =&gt; m DynFlags
</span><a href="GHC.Driver.Session.html#getDynFlags"><span class="hs-identifier hs-var">getDynFlags</span></a></span><span>
</span><span id="line-365"></span><span>    </span><span id="local-6989586621681089349"><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681089349"><span class="hs-identifier hs-var">iface_semantic_mod</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(ShIfEnv -&gt; Module)
-&gt; IOEnv (Env ShIfEnv ()) ShIfEnv -&gt; IOEnv (Env ShIfEnv ()) Module
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#fmap"><span class="hs-identifier hs-var">fmap</span></a></span><span> </span><span class="annot"><span class="annottext">ShIfEnv -&gt; Module
</span><a href="GHC.Iface.Rename.html#sh_if_semantic_module"><span class="hs-identifier hs-var hs-var">sh_if_semantic_module</span></a></span><span> </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) ShIfEnv
forall gbl lcl. TcRnIf gbl lcl gbl
</span><a href="GHC.Tc.Utils.Monad.html#getGblEnv"><span class="hs-identifier hs-var">getGblEnv</span></a></span><span>
</span><span id="line-366"></span><span>    </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681089347"><span class="annot"><span class="annottext">m :: Module
</span><a href="#local-6989586621681089347"><span class="hs-identifier hs-var hs-var">m</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UnitState -&gt; ShHoleSubst -&gt; Module -&gt; Module
</span><a href="GHC.Unit.State.html#renameHoleModule"><span class="hs-identifier hs-var">renameHoleModule</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">DynFlags -&gt; UnitState
</span><a href="GHC.Driver.Session.html#unitState"><span class="hs-identifier hs-var hs-var">unitState</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621681089350"><span class="hs-identifier hs-var">dflags</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">ShHoleSubst
</span><a href="#local-6989586621681089351"><span class="hs-identifier hs-var">hmap</span></a></span><span> </span><span class="annot"><span class="annottext">(Module -&gt; Module) -&gt; Module -&gt; Module
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">HasDebugCallStack =&gt; Name -&gt; Module
Name -&gt; Module
</span><a href="GHC.Types.Name.html#nameModule"><span class="hs-identifier hs-var">nameModule</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089352"><span class="hs-identifier hs-var">name</span></a></span><span>
</span><span id="line-367"></span><span>    </span><span class="hs-comment">-- Doublecheck that this DFun/coercion axiom was, indeed, locally defined.</span><span>
</span><span id="line-368"></span><span>    </span><span class="hs-identifier">MASSERT2</span><span class="hs-special">(</span><span> </span><span class="hs-identifier">iface_semantic_mod</span><span> </span><span class="hs-operator">==</span><span> </span><span class="hs-identifier">m</span><span class="hs-special">,</span><span> </span><span class="hs-identifier">ppr</span><span> </span><span class="hs-identifier">iface_semantic_mod</span><span> </span><span class="hs-operator">&lt;+&gt;</span><span> </span><span class="hs-identifier">ppr</span><span> </span><span class="hs-identifier">m</span><span> </span><span class="hs-special">)</span><span>
</span><span id="line-369"></span><span>    </span><span class="annot"><span class="annottext">Maybe Module -&gt; Name -&gt; IOEnv (Env ShIfEnv ()) Name
forall m n. Maybe Module -&gt; Name -&gt; TcRnIf m n Name
</span><a href="GHC.Iface.Env.html#setNameModule"><span class="hs-identifier hs-var">setNameModule</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Module -&gt; Maybe Module
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621681089347"><span class="hs-identifier hs-var">m</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089352"><span class="hs-identifier hs-var">name</span></a></span><span>
</span><span id="line-370"></span><span>
</span><span id="line-371"></span><span class="hs-comment">-- Note [rnIfaceNeverExported]</span><span>
</span><span id="line-372"></span><span class="hs-comment">-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~</span><span>
</span><span id="line-373"></span><span class="hs-comment">-- For the high-level overview, see</span><span>
</span><span id="line-374"></span><span class="hs-comment">-- Note [Handling never-exported TyThings under Backpack]</span><span>
</span><span id="line-375"></span><span class="hs-comment">--</span><span>
</span><span id="line-376"></span><span class="hs-comment">-- When we see a reference to an entity that was defined in a signature,</span><span>
</span><span id="line-377"></span><span class="hs-comment">-- 'rnIfaceGlobal' relies on the identifier in question being part of the</span><span>
</span><span id="line-378"></span><span class="hs-comment">-- exports of the implementing 'ModIface', so that we can use the exports to</span><span>
</span><span id="line-379"></span><span class="hs-comment">-- decide how to rename the identifier.  Unfortunately, references to 'DFun's</span><span>
</span><span id="line-380"></span><span class="hs-comment">-- and 'CoAxiom's will run into trouble under this strategy, because they are</span><span>
</span><span id="line-381"></span><span class="hs-comment">-- never exported.</span><span>
</span><span id="line-382"></span><span class="hs-comment">--</span><span>
</span><span id="line-383"></span><span class="hs-comment">-- Let us consider first what should happen in the absence of promotion.  In</span><span>
</span><span id="line-384"></span><span class="hs-comment">-- this setting, a reference to a 'DFun' or a 'CoAxiom' can only occur inside</span><span>
</span><span id="line-385"></span><span class="hs-comment">-- the signature *that is defining it* (as there are no Core terms in</span><span>
</span><span id="line-386"></span><span class="hs-comment">-- typechecked-only interface files, there's no way for a reference to occur</span><span>
</span><span id="line-387"></span><span class="hs-comment">-- besides from the defining 'ClsInst' or closed type family).  Thus,</span><span>
</span><span id="line-388"></span><span class="hs-comment">-- it doesn't really matter what names we give the DFun/CoAxiom, as long</span><span>
</span><span id="line-389"></span><span class="hs-comment">-- as it's consistent between the declaration site and the use site.</span><span>
</span><span id="line-390"></span><span class="hs-comment">--</span><span>
</span><span id="line-391"></span><span class="hs-comment">-- We have to make sure that these bogus names don't get propagated,</span><span>
</span><span id="line-392"></span><span class="hs-comment">-- but it is fine: see Note [Signature merging DFuns] for the fixups</span><span>
</span><span id="line-393"></span><span class="hs-comment">-- to the names we do before writing out the merged interface.</span><span>
</span><span id="line-394"></span><span class="hs-comment">-- (It's even easier for instantiation, since the DFuns all get</span><span>
</span><span id="line-395"></span><span class="hs-comment">-- dropped entirely; the instances are reexported implicitly.)</span><span>
</span><span id="line-396"></span><span class="hs-comment">--</span><span>
</span><span id="line-397"></span><span class="hs-comment">-- Unfortunately, this strategy is not enough in the presence of promotion</span><span>
</span><span id="line-398"></span><span class="hs-comment">-- (see bug #13149), where modules which import the signature may make</span><span>
</span><span id="line-399"></span><span class="hs-comment">-- reference to their coercions.  It's not altogether clear how to</span><span>
</span><span id="line-400"></span><span class="hs-comment">-- fix this case, but it is definitely a bug!</span><span>
</span><span id="line-401"></span><span>
</span><span id="line-402"></span><span class="hs-comment">-- PILES AND PILES OF BOILERPLATE</span><span>
</span><span id="line-403"></span><span>
</span><span id="line-404"></span><span class="hs-comment">-- | Rename an 'IfaceClsInst', with special handling for an associated</span><span>
</span><span id="line-405"></span><span class="hs-comment">-- dictionary function.</span><span>
</span><span id="line-406"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceClsInst"><span class="hs-identifier hs-type">rnIfaceClsInst</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#Rename"><span class="hs-identifier hs-type">Rename</span></a></span><span> </span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceClsInst"><span class="hs-identifier hs-type">IfaceClsInst</span></a></span><span>
</span><span id="line-407"></span><span id="rnIfaceClsInst"><span class="annot"><span class="annottext">rnIfaceClsInst :: IfaceClsInst -&gt; IOEnv (Env ShIfEnv ()) IfaceClsInst
</span><a href="GHC.Iface.Rename.html#rnIfaceClsInst"><span class="hs-identifier hs-var hs-var">rnIfaceClsInst</span></a></span></span><span> </span><span id="local-6989586621681089346"><span class="annot"><span class="annottext">IfaceClsInst
</span><a href="#local-6989586621681089346"><span class="hs-identifier hs-var">cls_inst</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-408"></span><span>    </span><span id="local-6989586621681089345"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089345"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Name -&gt; IOEnv (Env ShIfEnv ()) Name
</span><a href="GHC.Iface.Rename.html#rnIfaceGlobal"><span class="hs-identifier hs-var">rnIfaceGlobal</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceClsInst -&gt; Name
</span><a href="GHC.Iface.Syntax.html#ifInstCls"><span class="hs-identifier hs-var hs-var">ifInstCls</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceClsInst
</span><a href="#local-6989586621681089346"><span class="hs-identifier hs-var">cls_inst</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-409"></span><span>    </span><span id="local-6989586621681089343"><span class="annot"><span class="annottext">[Maybe IfaceTyCon]
</span><a href="#local-6989586621681089343"><span class="hs-identifier hs-var">tys</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(Maybe IfaceTyCon -&gt; IOEnv (Env ShIfEnv ()) (Maybe IfaceTyCon))
-&gt; [Maybe IfaceTyCon] -&gt; IOEnv (Env ShIfEnv ()) [Maybe IfaceTyCon]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe IfaceTyCon -&gt; IOEnv (Env ShIfEnv ()) (Maybe IfaceTyCon)
</span><a href="GHC.Iface.Rename.html#rnMaybeIfaceTyCon"><span class="hs-identifier hs-var">rnMaybeIfaceTyCon</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceClsInst -&gt; [Maybe IfaceTyCon]
</span><a href="GHC.Iface.Syntax.html#ifInstTys"><span class="hs-identifier hs-var hs-var">ifInstTys</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceClsInst
</span><a href="#local-6989586621681089346"><span class="hs-identifier hs-var">cls_inst</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-410"></span><span>
</span><span id="line-411"></span><span>    </span><span id="local-6989586621681089340"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089340"><span class="hs-identifier hs-var">dfun</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Name -&gt; IOEnv (Env ShIfEnv ()) Name
</span><a href="GHC.Iface.Rename.html#rnIfaceNeverExported"><span class="hs-identifier hs-var">rnIfaceNeverExported</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceClsInst -&gt; Name
</span><a href="GHC.Iface.Syntax.html#ifDFun"><span class="hs-identifier hs-var hs-var">ifDFun</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceClsInst
</span><a href="#local-6989586621681089346"><span class="hs-identifier hs-var">cls_inst</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-412"></span><span>    </span><span class="annot"><span class="annottext">IfaceClsInst -&gt; IOEnv (Env ShIfEnv ()) IfaceClsInst
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceClsInst
</span><a href="#local-6989586621681089346"><span class="hs-identifier hs-var">cls_inst</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">ifInstCls :: Name
</span><a href="GHC.Iface.Syntax.html#ifInstCls"><span class="hs-identifier hs-var">ifInstCls</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089345"><span class="hs-identifier hs-var">n</span></a></span><span>
</span><span id="line-413"></span><span>                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ifInstTys :: [Maybe IfaceTyCon]
</span><a href="GHC.Iface.Syntax.html#ifInstTys"><span class="hs-identifier hs-var">ifInstTys</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Maybe IfaceTyCon]
</span><a href="#local-6989586621681089343"><span class="hs-identifier hs-var">tys</span></a></span><span>
</span><span id="line-414"></span><span>                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ifDFun :: Name
</span><a href="GHC.Iface.Syntax.html#ifDFun"><span class="hs-identifier hs-var">ifDFun</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089340"><span class="hs-identifier hs-var">dfun</span></a></span><span>
</span><span id="line-415"></span><span>                    </span><span class="hs-special">}</span><span>
</span><span id="line-416"></span><span>
</span><span id="line-417"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnMaybeIfaceTyCon"><span class="hs-identifier hs-type">rnMaybeIfaceTyCon</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#Rename"><span class="hs-identifier hs-type">Rename</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="GHC.Iface.Type.html#IfaceTyCon"><span class="hs-identifier hs-type">IfaceTyCon</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-418"></span><span id="rnMaybeIfaceTyCon"><span class="annot"><span class="annottext">rnMaybeIfaceTyCon :: Maybe IfaceTyCon -&gt; IOEnv (Env ShIfEnv ()) (Maybe IfaceTyCon)
</span><a href="GHC.Iface.Rename.html#rnMaybeIfaceTyCon"><span class="hs-identifier hs-var hs-var">rnMaybeIfaceTyCon</span></a></span></span><span> </span><span class="annot"><span class="annottext">Maybe IfaceTyCon
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe IfaceTyCon -&gt; IOEnv (Env ShIfEnv ()) (Maybe IfaceTyCon)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe IfaceTyCon
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span>
</span><span id="line-419"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnMaybeIfaceTyCon"><span class="hs-identifier hs-var">rnMaybeIfaceTyCon</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621681089338"><span class="annot"><span class="annottext">IfaceTyCon
</span><a href="#local-6989586621681089338"><span class="hs-identifier hs-var">tc</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceTyCon -&gt; Maybe IfaceTyCon
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceTyCon -&gt; Maybe IfaceTyCon)
-&gt; IOEnv (Env ShIfEnv ()) IfaceTyCon
-&gt; IOEnv (Env ShIfEnv ()) (Maybe IfaceTyCon)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceTyCon
</span><a href="GHC.Iface.Rename.html#rnIfaceTyCon"><span class="hs-identifier hs-var">rnIfaceTyCon</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceTyCon
</span><a href="#local-6989586621681089338"><span class="hs-identifier hs-var">tc</span></a></span><span>
</span><span id="line-420"></span><span>
</span><span id="line-421"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceFamInst"><span class="hs-identifier hs-type">rnIfaceFamInst</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#Rename"><span class="hs-identifier hs-type">Rename</span></a></span><span> </span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceFamInst"><span class="hs-identifier hs-type">IfaceFamInst</span></a></span><span>
</span><span id="line-422"></span><span id="rnIfaceFamInst"><span class="annot"><span class="annottext">rnIfaceFamInst :: IfaceFamInst -&gt; IOEnv (Env ShIfEnv ()) IfaceFamInst
</span><a href="GHC.Iface.Rename.html#rnIfaceFamInst"><span class="hs-identifier hs-var hs-var">rnIfaceFamInst</span></a></span></span><span> </span><span id="local-6989586621681089336"><span class="annot"><span class="annottext">IfaceFamInst
</span><a href="#local-6989586621681089336"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-423"></span><span>    </span><span id="local-6989586621681089335"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089335"><span class="hs-identifier hs-var">fam</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Name -&gt; IOEnv (Env ShIfEnv ()) Name
</span><a href="GHC.Iface.Rename.html#rnIfaceGlobal"><span class="hs-identifier hs-var">rnIfaceGlobal</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceFamInst -&gt; Name
</span><a href="GHC.Iface.Syntax.html#ifFamInstFam"><span class="hs-identifier hs-var hs-var">ifFamInstFam</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceFamInst
</span><a href="#local-6989586621681089336"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-424"></span><span>    </span><span id="local-6989586621681089333"><span class="annot"><span class="annottext">[Maybe IfaceTyCon]
</span><a href="#local-6989586621681089333"><span class="hs-identifier hs-var">tys</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(Maybe IfaceTyCon -&gt; IOEnv (Env ShIfEnv ()) (Maybe IfaceTyCon))
-&gt; [Maybe IfaceTyCon] -&gt; IOEnv (Env ShIfEnv ()) [Maybe IfaceTyCon]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe IfaceTyCon -&gt; IOEnv (Env ShIfEnv ()) (Maybe IfaceTyCon)
</span><a href="GHC.Iface.Rename.html#rnMaybeIfaceTyCon"><span class="hs-identifier hs-var">rnMaybeIfaceTyCon</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceFamInst -&gt; [Maybe IfaceTyCon]
</span><a href="GHC.Iface.Syntax.html#ifFamInstTys"><span class="hs-identifier hs-var hs-var">ifFamInstTys</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceFamInst
</span><a href="#local-6989586621681089336"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-425"></span><span>    </span><span id="local-6989586621681089331"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089331"><span class="hs-identifier hs-var">axiom</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Name -&gt; IOEnv (Env ShIfEnv ()) Name
</span><a href="GHC.Iface.Rename.html#rnIfaceGlobal"><span class="hs-identifier hs-var">rnIfaceGlobal</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceFamInst -&gt; Name
</span><a href="GHC.Iface.Syntax.html#ifFamInstAxiom"><span class="hs-identifier hs-var hs-var">ifFamInstAxiom</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceFamInst
</span><a href="#local-6989586621681089336"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-426"></span><span>    </span><span class="annot"><span class="annottext">IfaceFamInst -&gt; IOEnv (Env ShIfEnv ()) IfaceFamInst
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceFamInst
</span><a href="#local-6989586621681089336"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">ifFamInstFam :: Name
</span><a href="GHC.Iface.Syntax.html#ifFamInstFam"><span class="hs-identifier hs-var">ifFamInstFam</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089335"><span class="hs-identifier hs-var">fam</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ifFamInstTys :: [Maybe IfaceTyCon]
</span><a href="GHC.Iface.Syntax.html#ifFamInstTys"><span class="hs-identifier hs-var">ifFamInstTys</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Maybe IfaceTyCon]
</span><a href="#local-6989586621681089333"><span class="hs-identifier hs-var">tys</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ifFamInstAxiom :: Name
</span><a href="GHC.Iface.Syntax.html#ifFamInstAxiom"><span class="hs-identifier hs-var">ifFamInstAxiom</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089331"><span class="hs-identifier hs-var">axiom</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-427"></span><span>
</span><span id="line-428"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceDecl%27"><span class="hs-identifier hs-type">rnIfaceDecl'</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#Rename"><span class="hs-identifier hs-type">Rename</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Fingerprint.Type.html#Fingerprint"><span class="hs-identifier hs-type">Fingerprint</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceDecl"><span class="hs-identifier hs-type">IfaceDecl</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-429"></span><span id="rnIfaceDecl%27"><span class="annot"><span class="annottext">rnIfaceDecl' :: (Fingerprint, IfaceDecl)
-&gt; IOEnv (Env ShIfEnv ()) (Fingerprint, IfaceDecl)
</span><a href="GHC.Iface.Rename.html#rnIfaceDecl%27"><span class="hs-identifier hs-var hs-var">rnIfaceDecl'</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621681089329"><span class="annot"><span class="annottext">Fingerprint
</span><a href="#local-6989586621681089329"><span class="hs-identifier hs-var">fp</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621681089328"><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089328"><span class="hs-identifier hs-var">decl</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="hs-special">,</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Fingerprint
</span><a href="#local-6989586621681089329"><span class="hs-identifier hs-var">fp</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceDecl -&gt; (Fingerprint, IfaceDecl))
-&gt; IOEnv (Env ShIfEnv ()) IfaceDecl
-&gt; IOEnv (Env ShIfEnv ()) (Fingerprint, IfaceDecl)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceDecl
</span><a href="GHC.Iface.Rename.html#rnIfaceDecl"><span class="hs-identifier hs-var">rnIfaceDecl</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089328"><span class="hs-identifier hs-var">decl</span></a></span><span>
</span><span id="line-430"></span><span>
</span><span id="line-431"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceDecl"><span class="hs-identifier hs-type">rnIfaceDecl</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#Rename"><span class="hs-identifier hs-type">Rename</span></a></span><span> </span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceDecl"><span class="hs-identifier hs-type">IfaceDecl</span></a></span><span>
</span><span id="line-432"></span><span id="rnIfaceDecl"><span class="annot"><span class="annottext">rnIfaceDecl :: Rename IfaceDecl
</span><a href="GHC.Iface.Rename.html#rnIfaceDecl"><span class="hs-identifier hs-var hs-var">rnIfaceDecl</span></a></span></span><span> </span><span id="local-6989586621681089326"><span class="annot"><span class="annottext">d :: IfaceDecl
</span><a href="#local-6989586621681089326"><span class="hs-identifier hs-var">d</span></a></span></span><span class="hs-glyph">@</span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceId"><span class="hs-identifier hs-type">IfaceId</span></a></span><span class="hs-special">{</span><span class="hs-special">}</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-433"></span><span>            </span><span id="local-6989586621681089324"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089324"><span class="hs-identifier hs-var">name</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">IfaceDecl -&gt; IfaceIdDetails
</span><a href="GHC.Iface.Syntax.html#ifIdDetails"><span class="hs-identifier hs-var hs-var">ifIdDetails</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089326"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-434"></span><span>                      </span><span class="annot"><span class="annottext">IfaceIdDetails
</span><a href="GHC.Iface.Syntax.html#IfDFunId"><span class="hs-identifier hs-var">IfDFunId</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Name -&gt; IOEnv (Env ShIfEnv ()) Name
</span><a href="GHC.Iface.Rename.html#rnIfaceNeverExported"><span class="hs-identifier hs-var">rnIfaceNeverExported</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceDecl -&gt; Name
</span><a href="GHC.Iface.Syntax.html#ifName"><span class="hs-identifier hs-var hs-var">ifName</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089326"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-435"></span><span>                      </span><span class="annot"><span class="annottext">IfaceIdDetails
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">OccName -&gt; Bool
</span><a href="GHC.Types.Name.Occurrence.html#isDefaultMethodOcc"><span class="hs-identifier hs-var">isDefaultMethodOcc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Name -&gt; OccName
forall name. HasOccName name =&gt; name -&gt; OccName
</span><a href="GHC.Types.Name.Occurrence.html#occName"><span class="hs-identifier hs-var">occName</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceDecl -&gt; Name
</span><a href="GHC.Iface.Syntax.html#ifName"><span class="hs-identifier hs-var hs-var">ifName</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089326"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-436"></span><span>                        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Name -&gt; IOEnv (Env ShIfEnv ()) Name
</span><a href="GHC.Iface.Rename.html#rnIfaceNeverExported"><span class="hs-identifier hs-var">rnIfaceNeverExported</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceDecl -&gt; Name
</span><a href="GHC.Iface.Syntax.html#ifName"><span class="hs-identifier hs-var hs-var">ifName</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089326"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-437"></span><span>                      </span><span class="hs-comment">-- Typeable bindings. See Note [Grand plan for Typeable].</span><span>
</span><span id="line-438"></span><span>                      </span><span class="annot"><span class="annottext">IfaceIdDetails
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">OccName -&gt; Bool
</span><a href="GHC.Types.Name.Occurrence.html#isTypeableBindOcc"><span class="hs-identifier hs-var">isTypeableBindOcc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Name -&gt; OccName
forall name. HasOccName name =&gt; name -&gt; OccName
</span><a href="GHC.Types.Name.Occurrence.html#occName"><span class="hs-identifier hs-var">occName</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceDecl -&gt; Name
</span><a href="GHC.Iface.Syntax.html#ifName"><span class="hs-identifier hs-var hs-var">ifName</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089326"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-439"></span><span>                        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Name -&gt; IOEnv (Env ShIfEnv ()) Name
</span><a href="GHC.Iface.Rename.html#rnIfaceNeverExported"><span class="hs-identifier hs-var">rnIfaceNeverExported</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceDecl -&gt; Name
</span><a href="GHC.Iface.Syntax.html#ifName"><span class="hs-identifier hs-var hs-var">ifName</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089326"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-440"></span><span>                        </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Name -&gt; IOEnv (Env ShIfEnv ()) Name
</span><a href="GHC.Iface.Rename.html#rnIfaceGlobal"><span class="hs-identifier hs-var">rnIfaceGlobal</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceDecl -&gt; Name
</span><a href="GHC.Iface.Syntax.html#ifName"><span class="hs-identifier hs-var hs-var">ifName</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089326"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-441"></span><span>            </span><span id="local-6989586621681089318"><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681089318"><span class="hs-identifier hs-var">ty</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
</span><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceDecl -&gt; IfaceType
</span><a href="GHC.Iface.Syntax.html#ifType"><span class="hs-identifier hs-var hs-var">ifType</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089326"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-442"></span><span>            </span><span id="local-6989586621681089315"><span class="annot"><span class="annottext">IfaceIdDetails
</span><a href="#local-6989586621681089315"><span class="hs-identifier hs-var">details</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Rename IfaceIdDetails
</span><a href="GHC.Iface.Rename.html#rnIfaceIdDetails"><span class="hs-identifier hs-var">rnIfaceIdDetails</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceDecl -&gt; IfaceIdDetails
</span><a href="GHC.Iface.Syntax.html#ifIdDetails"><span class="hs-identifier hs-var hs-var">ifIdDetails</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089326"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-443"></span><span>            </span><span id="local-6989586621681089313"><span class="annot"><span class="annottext">IfaceIdInfo
</span><a href="#local-6989586621681089313"><span class="hs-identifier hs-var">info</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Rename IfaceIdInfo
</span><a href="GHC.Iface.Rename.html#rnIfaceIdInfo"><span class="hs-identifier hs-var">rnIfaceIdInfo</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceDecl -&gt; IfaceIdInfo
</span><a href="GHC.Iface.Syntax.html#ifIdInfo"><span class="hs-identifier hs-var hs-var">ifIdInfo</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089326"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-444"></span><span>            </span><span class="annot"><span class="annottext">Rename IfaceDecl
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089326"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">ifName :: Name
</span><a href="GHC.Iface.Syntax.html#ifName"><span class="hs-identifier hs-var">ifName</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089324"><span class="hs-identifier hs-var">name</span></a></span><span>
</span><span id="line-445"></span><span>                     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ifType :: IfaceType
</span><a href="GHC.Iface.Syntax.html#ifType"><span class="hs-identifier hs-var">ifType</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681089318"><span class="hs-identifier hs-var">ty</span></a></span><span>
</span><span id="line-446"></span><span>                     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ifIdDetails :: IfaceIdDetails
</span><a href="GHC.Iface.Syntax.html#ifIdDetails"><span class="hs-identifier hs-var">ifIdDetails</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceIdDetails
</span><a href="#local-6989586621681089315"><span class="hs-identifier hs-var">details</span></a></span><span>
</span><span id="line-447"></span><span>                     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ifIdInfo :: IfaceIdInfo
</span><a href="GHC.Iface.Syntax.html#ifIdInfo"><span class="hs-identifier hs-var">ifIdInfo</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceIdInfo
</span><a href="#local-6989586621681089313"><span class="hs-identifier hs-var">info</span></a></span><span>
</span><span id="line-448"></span><span>                     </span><span class="hs-special">}</span><span>
</span><span id="line-449"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceDecl"><span class="hs-identifier hs-var">rnIfaceDecl</span></a></span><span> </span><span id="local-6989586621681089310"><span class="annot"><span class="annottext">d :: IfaceDecl
</span><a href="#local-6989586621681089310"><span class="hs-identifier hs-var">d</span></a></span></span><span class="hs-glyph">@</span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceData"><span class="hs-identifier hs-type">IfaceData</span></a></span><span class="hs-special">{</span><span class="hs-special">}</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-450"></span><span>            </span><span id="local-6989586621681089308"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089308"><span class="hs-identifier hs-var">name</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Name -&gt; IOEnv (Env ShIfEnv ()) Name
</span><a href="GHC.Iface.Rename.html#rnIfaceGlobal"><span class="hs-identifier hs-var">rnIfaceGlobal</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceDecl -&gt; Name
</span><a href="GHC.Iface.Syntax.html#ifName"><span class="hs-identifier hs-var hs-var">ifName</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089310"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-451"></span><span>            </span><span id="local-6989586621681089307"><span class="annot"><span class="annottext">[IfaceTyConBinder]
</span><a href="#local-6989586621681089307"><span class="hs-identifier hs-var">binders</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(IfaceTyConBinder -&gt; IOEnv (Env ShIfEnv ()) IfaceTyConBinder)
-&gt; [IfaceTyConBinder] -&gt; IOEnv (Env ShIfEnv ()) [IfaceTyConBinder]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceTyConBinder -&gt; IOEnv (Env ShIfEnv ()) IfaceTyConBinder
</span><a href="GHC.Iface.Rename.html#rnIfaceTyConBinder"><span class="hs-identifier hs-var">rnIfaceTyConBinder</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceDecl -&gt; [IfaceTyConBinder]
</span><a href="GHC.Iface.Syntax.html#ifBinders"><span class="hs-identifier hs-var hs-var">ifBinders</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089310"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-452"></span><span>            </span><span id="local-6989586621681089304"><span class="annot"><span class="annottext">[IfaceType]
</span><a href="#local-6989586621681089304"><span class="hs-identifier hs-var">ctxt</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
-&gt; [IfaceType] -&gt; IOEnv (Env ShIfEnv ()) [IfaceType]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
</span><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceDecl -&gt; [IfaceType]
</span><a href="GHC.Iface.Syntax.html#ifCtxt"><span class="hs-identifier hs-var hs-var">ifCtxt</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089310"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-453"></span><span>            </span><span id="local-6989586621681089302"><span class="annot"><span class="annottext">IfaceConDecls
</span><a href="#local-6989586621681089302"><span class="hs-identifier hs-var">cons</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Rename IfaceConDecls
</span><a href="GHC.Iface.Rename.html#rnIfaceConDecls"><span class="hs-identifier hs-var">rnIfaceConDecls</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceDecl -&gt; IfaceConDecls
</span><a href="GHC.Iface.Syntax.html#ifCons"><span class="hs-identifier hs-var hs-var">ifCons</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089310"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-454"></span><span>            </span><span id="local-6989586621681089299"><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681089299"><span class="hs-identifier hs-var">res_kind</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
</span><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceDecl -&gt; IfaceType
</span><a href="GHC.Iface.Syntax.html#ifResKind"><span class="hs-identifier hs-var hs-var">ifResKind</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089310"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-455"></span><span>            </span><span id="local-6989586621681089297"><span class="annot"><span class="annottext">IfaceTyConParent
</span><a href="#local-6989586621681089297"><span class="hs-identifier hs-var">parent</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Rename IfaceTyConParent
</span><a href="GHC.Iface.Rename.html#rnIfaceTyConParent"><span class="hs-identifier hs-var">rnIfaceTyConParent</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceDecl -&gt; IfaceTyConParent
</span><a href="GHC.Iface.Syntax.html#ifParent"><span class="hs-identifier hs-var hs-var">ifParent</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089310"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-456"></span><span>            </span><span class="annot"><span class="annottext">Rename IfaceDecl
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089310"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">ifName :: Name
</span><a href="GHC.Iface.Syntax.html#ifName"><span class="hs-identifier hs-var">ifName</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089308"><span class="hs-identifier hs-var">name</span></a></span><span>
</span><span id="line-457"></span><span>                     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ifBinders :: [IfaceTyConBinder]
</span><a href="GHC.Iface.Syntax.html#ifBinders"><span class="hs-identifier hs-var">ifBinders</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[IfaceTyConBinder]
</span><a href="#local-6989586621681089307"><span class="hs-identifier hs-var">binders</span></a></span><span>
</span><span id="line-458"></span><span>                     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ifCtxt :: [IfaceType]
</span><a href="GHC.Iface.Syntax.html#ifCtxt"><span class="hs-identifier hs-var">ifCtxt</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[IfaceType]
</span><a href="#local-6989586621681089304"><span class="hs-identifier hs-var">ctxt</span></a></span><span>
</span><span id="line-459"></span><span>                     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ifCons :: IfaceConDecls
</span><a href="GHC.Iface.Syntax.html#ifCons"><span class="hs-identifier hs-var">ifCons</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceConDecls
</span><a href="#local-6989586621681089302"><span class="hs-identifier hs-var">cons</span></a></span><span>
</span><span id="line-460"></span><span>                     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ifResKind :: IfaceType
</span><a href="GHC.Iface.Syntax.html#ifResKind"><span class="hs-identifier hs-var">ifResKind</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681089299"><span class="hs-identifier hs-var">res_kind</span></a></span><span>
</span><span id="line-461"></span><span>                     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ifParent :: IfaceTyConParent
</span><a href="GHC.Iface.Syntax.html#ifParent"><span class="hs-identifier hs-var">ifParent</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceTyConParent
</span><a href="#local-6989586621681089297"><span class="hs-identifier hs-var">parent</span></a></span><span>
</span><span id="line-462"></span><span>                     </span><span class="hs-special">}</span><span>
</span><span id="line-463"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceDecl"><span class="hs-identifier hs-var">rnIfaceDecl</span></a></span><span> </span><span id="local-6989586621681089294"><span class="annot"><span class="annottext">d :: IfaceDecl
</span><a href="#local-6989586621681089294"><span class="hs-identifier hs-var">d</span></a></span></span><span class="hs-glyph">@</span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceSynonym"><span class="hs-identifier hs-type">IfaceSynonym</span></a></span><span class="hs-special">{</span><span class="hs-special">}</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-464"></span><span>            </span><span id="local-6989586621681089292"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089292"><span class="hs-identifier hs-var">name</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Name -&gt; IOEnv (Env ShIfEnv ()) Name
</span><a href="GHC.Iface.Rename.html#rnIfaceGlobal"><span class="hs-identifier hs-var">rnIfaceGlobal</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceDecl -&gt; Name
</span><a href="GHC.Iface.Syntax.html#ifName"><span class="hs-identifier hs-var hs-var">ifName</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089294"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-465"></span><span>            </span><span id="local-6989586621681089291"><span class="annot"><span class="annottext">[IfaceTyConBinder]
</span><a href="#local-6989586621681089291"><span class="hs-identifier hs-var">binders</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(IfaceTyConBinder -&gt; IOEnv (Env ShIfEnv ()) IfaceTyConBinder)
-&gt; [IfaceTyConBinder] -&gt; IOEnv (Env ShIfEnv ()) [IfaceTyConBinder]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceTyConBinder -&gt; IOEnv (Env ShIfEnv ()) IfaceTyConBinder
</span><a href="GHC.Iface.Rename.html#rnIfaceTyConBinder"><span class="hs-identifier hs-var">rnIfaceTyConBinder</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceDecl -&gt; [IfaceTyConBinder]
</span><a href="GHC.Iface.Syntax.html#ifBinders"><span class="hs-identifier hs-var hs-var">ifBinders</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089294"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-466"></span><span>            </span><span id="local-6989586621681089290"><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681089290"><span class="hs-identifier hs-var">syn_kind</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
</span><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceDecl -&gt; IfaceType
</span><a href="GHC.Iface.Syntax.html#ifResKind"><span class="hs-identifier hs-var hs-var">ifResKind</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089294"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-467"></span><span>            </span><span id="local-6989586621681089289"><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681089289"><span class="hs-identifier hs-var">syn_rhs</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
</span><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceDecl -&gt; IfaceType
</span><a href="GHC.Iface.Syntax.html#ifSynRhs"><span class="hs-identifier hs-var hs-var">ifSynRhs</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089294"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-468"></span><span>            </span><span class="annot"><span class="annottext">Rename IfaceDecl
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089294"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">ifName :: Name
</span><a href="GHC.Iface.Syntax.html#ifName"><span class="hs-identifier hs-var">ifName</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089292"><span class="hs-identifier hs-var">name</span></a></span><span>
</span><span id="line-469"></span><span>                     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ifBinders :: [IfaceTyConBinder]
</span><a href="GHC.Iface.Syntax.html#ifBinders"><span class="hs-identifier hs-var">ifBinders</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[IfaceTyConBinder]
</span><a href="#local-6989586621681089291"><span class="hs-identifier hs-var">binders</span></a></span><span>
</span><span id="line-470"></span><span>                     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ifResKind :: IfaceType
</span><a href="GHC.Iface.Syntax.html#ifResKind"><span class="hs-identifier hs-var">ifResKind</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681089290"><span class="hs-identifier hs-var">syn_kind</span></a></span><span>
</span><span id="line-471"></span><span>                     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ifSynRhs :: IfaceType
</span><a href="GHC.Iface.Syntax.html#ifSynRhs"><span class="hs-identifier hs-var">ifSynRhs</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681089289"><span class="hs-identifier hs-var">syn_rhs</span></a></span><span>
</span><span id="line-472"></span><span>                     </span><span class="hs-special">}</span><span>
</span><span id="line-473"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceDecl"><span class="hs-identifier hs-var">rnIfaceDecl</span></a></span><span> </span><span id="local-6989586621681089287"><span class="annot"><span class="annottext">d :: IfaceDecl
</span><a href="#local-6989586621681089287"><span class="hs-identifier hs-var">d</span></a></span></span><span class="hs-glyph">@</span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceFamily"><span class="hs-identifier hs-type">IfaceFamily</span></a></span><span class="hs-special">{</span><span class="hs-special">}</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-474"></span><span>            </span><span id="local-6989586621681089285"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089285"><span class="hs-identifier hs-var">name</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Name -&gt; IOEnv (Env ShIfEnv ()) Name
</span><a href="GHC.Iface.Rename.html#rnIfaceGlobal"><span class="hs-identifier hs-var">rnIfaceGlobal</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceDecl -&gt; Name
</span><a href="GHC.Iface.Syntax.html#ifName"><span class="hs-identifier hs-var hs-var">ifName</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089287"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-475"></span><span>            </span><span id="local-6989586621681089284"><span class="annot"><span class="annottext">[IfaceTyConBinder]
</span><a href="#local-6989586621681089284"><span class="hs-identifier hs-var">binders</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(IfaceTyConBinder -&gt; IOEnv (Env ShIfEnv ()) IfaceTyConBinder)
-&gt; [IfaceTyConBinder] -&gt; IOEnv (Env ShIfEnv ()) [IfaceTyConBinder]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceTyConBinder -&gt; IOEnv (Env ShIfEnv ()) IfaceTyConBinder
</span><a href="GHC.Iface.Rename.html#rnIfaceTyConBinder"><span class="hs-identifier hs-var">rnIfaceTyConBinder</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceDecl -&gt; [IfaceTyConBinder]
</span><a href="GHC.Iface.Syntax.html#ifBinders"><span class="hs-identifier hs-var hs-var">ifBinders</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089287"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-476"></span><span>            </span><span id="local-6989586621681089283"><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681089283"><span class="hs-identifier hs-var">fam_kind</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
</span><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceDecl -&gt; IfaceType
</span><a href="GHC.Iface.Syntax.html#ifResKind"><span class="hs-identifier hs-var hs-var">ifResKind</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089287"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-477"></span><span>            </span><span id="local-6989586621681089282"><span class="annot"><span class="annottext">IfaceFamTyConFlav
</span><a href="#local-6989586621681089282"><span class="hs-identifier hs-var">fam_flav</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Rename IfaceFamTyConFlav
</span><a href="GHC.Iface.Rename.html#rnIfaceFamTyConFlav"><span class="hs-identifier hs-var">rnIfaceFamTyConFlav</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceDecl -&gt; IfaceFamTyConFlav
</span><a href="GHC.Iface.Syntax.html#ifFamFlav"><span class="hs-identifier hs-var hs-var">ifFamFlav</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089287"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-478"></span><span>            </span><span class="annot"><span class="annottext">Rename IfaceDecl
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089287"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">ifName :: Name
</span><a href="GHC.Iface.Syntax.html#ifName"><span class="hs-identifier hs-var">ifName</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089285"><span class="hs-identifier hs-var">name</span></a></span><span>
</span><span id="line-479"></span><span>                     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ifBinders :: [IfaceTyConBinder]
</span><a href="GHC.Iface.Syntax.html#ifBinders"><span class="hs-identifier hs-var">ifBinders</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[IfaceTyConBinder]
</span><a href="#local-6989586621681089284"><span class="hs-identifier hs-var">binders</span></a></span><span>
</span><span id="line-480"></span><span>                     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ifResKind :: IfaceType
</span><a href="GHC.Iface.Syntax.html#ifResKind"><span class="hs-identifier hs-var">ifResKind</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681089283"><span class="hs-identifier hs-var">fam_kind</span></a></span><span>
</span><span id="line-481"></span><span>                     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ifFamFlav :: IfaceFamTyConFlav
</span><a href="GHC.Iface.Syntax.html#ifFamFlav"><span class="hs-identifier hs-var">ifFamFlav</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceFamTyConFlav
</span><a href="#local-6989586621681089282"><span class="hs-identifier hs-var">fam_flav</span></a></span><span>
</span><span id="line-482"></span><span>                     </span><span class="hs-special">}</span><span>
</span><span id="line-483"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceDecl"><span class="hs-identifier hs-var">rnIfaceDecl</span></a></span><span> </span><span id="local-6989586621681089279"><span class="annot"><span class="annottext">d :: IfaceDecl
</span><a href="#local-6989586621681089279"><span class="hs-identifier hs-var">d</span></a></span></span><span class="hs-glyph">@</span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceClass"><span class="hs-identifier hs-type">IfaceClass</span></a></span><span class="hs-special">{</span><span class="hs-special">}</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-484"></span><span>            </span><span id="local-6989586621681089277"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089277"><span class="hs-identifier hs-var">name</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Name -&gt; IOEnv (Env ShIfEnv ()) Name
</span><a href="GHC.Iface.Rename.html#rnIfaceGlobal"><span class="hs-identifier hs-var">rnIfaceGlobal</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceDecl -&gt; Name
</span><a href="GHC.Iface.Syntax.html#ifName"><span class="hs-identifier hs-var hs-var">ifName</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089279"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-485"></span><span>            </span><span id="local-6989586621681089276"><span class="annot"><span class="annottext">[IfaceTyConBinder]
</span><a href="#local-6989586621681089276"><span class="hs-identifier hs-var">binders</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(IfaceTyConBinder -&gt; IOEnv (Env ShIfEnv ()) IfaceTyConBinder)
-&gt; [IfaceTyConBinder] -&gt; IOEnv (Env ShIfEnv ()) [IfaceTyConBinder]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceTyConBinder -&gt; IOEnv (Env ShIfEnv ()) IfaceTyConBinder
</span><a href="GHC.Iface.Rename.html#rnIfaceTyConBinder"><span class="hs-identifier hs-var">rnIfaceTyConBinder</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceDecl -&gt; [IfaceTyConBinder]
</span><a href="GHC.Iface.Syntax.html#ifBinders"><span class="hs-identifier hs-var hs-var">ifBinders</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089279"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-486"></span><span>            </span><span id="local-6989586621681089275"><span class="annot"><span class="annottext">IfaceClassBody
</span><a href="#local-6989586621681089275"><span class="hs-identifier hs-var">body</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Rename IfaceClassBody
</span><a href="GHC.Iface.Rename.html#rnIfaceClassBody"><span class="hs-identifier hs-var">rnIfaceClassBody</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceDecl -&gt; IfaceClassBody
</span><a href="GHC.Iface.Syntax.html#ifBody"><span class="hs-identifier hs-var hs-var">ifBody</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089279"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-487"></span><span>            </span><span class="annot"><span class="annottext">Rename IfaceDecl
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089279"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">ifName :: Name
</span><a href="GHC.Iface.Syntax.html#ifName"><span class="hs-identifier hs-var">ifName</span></a></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089277"><span class="hs-identifier hs-var">name</span></a></span><span>
</span><span id="line-488"></span><span>                     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ifBinders :: [IfaceTyConBinder]
</span><a href="GHC.Iface.Syntax.html#ifBinders"><span class="hs-identifier hs-var">ifBinders</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[IfaceTyConBinder]
</span><a href="#local-6989586621681089276"><span class="hs-identifier hs-var">binders</span></a></span><span>
</span><span id="line-489"></span><span>                     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ifBody :: IfaceClassBody
</span><a href="GHC.Iface.Syntax.html#ifBody"><span class="hs-identifier hs-var">ifBody</span></a></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceClassBody
</span><a href="#local-6989586621681089275"><span class="hs-identifier hs-var">body</span></a></span><span>
</span><span id="line-490"></span><span>                     </span><span class="hs-special">}</span><span>
</span><span id="line-491"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceDecl"><span class="hs-identifier hs-var">rnIfaceDecl</span></a></span><span> </span><span id="local-6989586621681089272"><span class="annot"><span class="annottext">d :: IfaceDecl
</span><a href="#local-6989586621681089272"><span class="hs-identifier hs-var">d</span></a></span></span><span class="hs-glyph">@</span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceAxiom"><span class="hs-identifier hs-type">IfaceAxiom</span></a></span><span class="hs-special">{</span><span class="hs-special">}</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-492"></span><span>            </span><span id="local-6989586621681089270"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089270"><span class="hs-identifier hs-var">name</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Name -&gt; IOEnv (Env ShIfEnv ()) Name
</span><a href="GHC.Iface.Rename.html#rnIfaceNeverExported"><span class="hs-identifier hs-var">rnIfaceNeverExported</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceDecl -&gt; Name
</span><a href="GHC.Iface.Syntax.html#ifName"><span class="hs-identifier hs-var hs-var">ifName</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089272"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-493"></span><span>            </span><span id="local-6989586621681089269"><span class="annot"><span class="annottext">IfaceTyCon
</span><a href="#local-6989586621681089269"><span class="hs-identifier hs-var">tycon</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Rename IfaceTyCon
</span><a href="GHC.Iface.Rename.html#rnIfaceTyCon"><span class="hs-identifier hs-var">rnIfaceTyCon</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceDecl -&gt; IfaceTyCon
</span><a href="GHC.Iface.Syntax.html#ifTyCon"><span class="hs-identifier hs-var hs-var">ifTyCon</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089272"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-494"></span><span>            </span><span id="local-6989586621681089267"><span class="annot"><span class="annottext">[IfaceAxBranch]
</span><a href="#local-6989586621681089267"><span class="hs-identifier hs-var">ax_branches</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(IfaceAxBranch -&gt; IOEnv (Env ShIfEnv ()) IfaceAxBranch)
-&gt; [IfaceAxBranch] -&gt; IOEnv (Env ShIfEnv ()) [IfaceAxBranch]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceAxBranch -&gt; IOEnv (Env ShIfEnv ()) IfaceAxBranch
</span><a href="GHC.Iface.Rename.html#rnIfaceAxBranch"><span class="hs-identifier hs-var">rnIfaceAxBranch</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceDecl -&gt; [IfaceAxBranch]
</span><a href="GHC.Iface.Syntax.html#ifAxBranches"><span class="hs-identifier hs-var hs-var">ifAxBranches</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089272"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-495"></span><span>            </span><span class="annot"><span class="annottext">Rename IfaceDecl
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089272"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">ifName :: Name
</span><a href="GHC.Iface.Syntax.html#ifName"><span class="hs-identifier hs-var">ifName</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089270"><span class="hs-identifier hs-var">name</span></a></span><span>
</span><span id="line-496"></span><span>                     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ifTyCon :: IfaceTyCon
</span><a href="GHC.Iface.Syntax.html#ifTyCon"><span class="hs-identifier hs-var">ifTyCon</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceTyCon
</span><a href="#local-6989586621681089269"><span class="hs-identifier hs-var">tycon</span></a></span><span>
</span><span id="line-497"></span><span>                     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ifAxBranches :: [IfaceAxBranch]
</span><a href="GHC.Iface.Syntax.html#ifAxBranches"><span class="hs-identifier hs-var">ifAxBranches</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[IfaceAxBranch]
</span><a href="#local-6989586621681089267"><span class="hs-identifier hs-var">ax_branches</span></a></span><span>
</span><span id="line-498"></span><span>                     </span><span class="hs-special">}</span><span>
</span><span id="line-499"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceDecl"><span class="hs-identifier hs-var">rnIfaceDecl</span></a></span><span> </span><span id="local-6989586621681089264"><span class="annot"><span class="annottext">d :: IfaceDecl
</span><a href="#local-6989586621681089264"><span class="hs-identifier hs-var">d</span></a></span></span><span class="hs-glyph">@</span><span class="annot"><a href="GHC.Iface.Syntax.html#IfacePatSyn"><span class="hs-identifier hs-type">IfacePatSyn</span></a></span><span class="hs-special">{</span><span class="hs-special">}</span><span> </span><span class="hs-glyph">=</span><span>  </span><span class="hs-keyword">do</span><span>
</span><span id="line-500"></span><span>            </span><span id="local-6989586621681089262"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089262"><span class="hs-identifier hs-var">name</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Name -&gt; IOEnv (Env ShIfEnv ()) Name
</span><a href="GHC.Iface.Rename.html#rnIfaceGlobal"><span class="hs-identifier hs-var">rnIfaceGlobal</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceDecl -&gt; Name
</span><a href="GHC.Iface.Syntax.html#ifName"><span class="hs-identifier hs-var hs-var">ifName</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089264"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-501"></span><span>            </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681089258"><span class="annot"><span class="annottext">rnPat :: (Name, a) -&gt; IOEnv (Env ShIfEnv ()) (Name, a)
</span><a href="#local-6989586621681089258"><span class="hs-identifier hs-var hs-var">rnPat</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621681089257"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089257"><span class="hs-identifier hs-var">n</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621681089256"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621681089256"><span class="hs-identifier hs-var">b</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="hs-special">,</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(Name -&gt; a -&gt; (Name, a))
-&gt; IOEnv (Env ShIfEnv ()) Name
-&gt; IOEnv (Env ShIfEnv ()) (a -&gt; (Name, a))
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; IOEnv (Env ShIfEnv ()) Name
</span><a href="GHC.Iface.Rename.html#rnIfaceGlobal"><span class="hs-identifier hs-var">rnIfaceGlobal</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089257"><span class="hs-identifier hs-var">n</span></a></span><span> </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) (a -&gt; (Name, a))
-&gt; IOEnv (Env ShIfEnv ()) a -&gt; IOEnv (Env ShIfEnv ()) (Name, a)
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; IOEnv (Env ShIfEnv ()) a
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621681089256"><span class="hs-identifier hs-var">b</span></a></span><span>
</span><span id="line-502"></span><span>            </span><span id="local-6989586621681089255"><span class="annot"><span class="annottext">(Name, Bool)
</span><a href="#local-6989586621681089255"><span class="hs-identifier hs-var">pat_matcher</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(Name, Bool) -&gt; IOEnv (Env ShIfEnv ()) (Name, Bool)
forall {a}. (Name, a) -&gt; IOEnv (Env ShIfEnv ()) (Name, a)
</span><a href="#local-6989586621681089258"><span class="hs-identifier hs-var">rnPat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceDecl -&gt; (Name, Bool)
</span><a href="GHC.Iface.Syntax.html#ifPatMatcher"><span class="hs-identifier hs-var hs-var">ifPatMatcher</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089264"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-503"></span><span>            </span><span id="local-6989586621681089253"><span class="annot"><span class="annottext">Maybe (Name, Bool)
</span><a href="#local-6989586621681089253"><span class="hs-identifier hs-var">pat_builder</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">((Name, Bool) -&gt; IOEnv (Env ShIfEnv ()) (Name, Bool))
-&gt; Maybe (Name, Bool)
-&gt; IOEnv (Env ShIfEnv ()) (Maybe (Name, Bool))
forall (t :: * -&gt; *) (f :: * -&gt; *) a b.
(Traversable t, Applicative f) =&gt;
(a -&gt; f b) -&gt; t a -&gt; f (t b)
</span><a href="../../base/src/Data.Traversable.html#traverse"><span class="hs-identifier hs-var">T.traverse</span></a></span><span> </span><span class="annot"><span class="annottext">(Name, Bool) -&gt; IOEnv (Env ShIfEnv ()) (Name, Bool)
forall {a}. (Name, a) -&gt; IOEnv (Env ShIfEnv ()) (Name, a)
</span><a href="#local-6989586621681089258"><span class="hs-identifier hs-var">rnPat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceDecl -&gt; Maybe (Name, Bool)
</span><a href="GHC.Iface.Syntax.html#ifPatBuilder"><span class="hs-identifier hs-var hs-var">ifPatBuilder</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089264"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-504"></span><span>            </span><span id="local-6989586621681089250"><span class="annot"><span class="annottext">[VarBndr IfaceBndr Specificity]
</span><a href="#local-6989586621681089250"><span class="hs-identifier hs-var">pat_univ_bndrs</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(VarBndr IfaceBndr Specificity
 -&gt; IOEnv (Env ShIfEnv ()) (VarBndr IfaceBndr Specificity))
-&gt; [VarBndr IfaceBndr Specificity]
-&gt; IOEnv (Env ShIfEnv ()) [VarBndr IfaceBndr Specificity]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="annot"><span class="annottext">VarBndr IfaceBndr Specificity
-&gt; IOEnv (Env ShIfEnv ()) (VarBndr IfaceBndr Specificity)
forall flag. Rename (VarBndr IfaceBndr flag)
</span><a href="GHC.Iface.Rename.html#rnIfaceForAllBndr"><span class="hs-identifier hs-var">rnIfaceForAllBndr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceDecl -&gt; [VarBndr IfaceBndr Specificity]
</span><a href="GHC.Iface.Syntax.html#ifPatUnivBndrs"><span class="hs-identifier hs-var hs-var">ifPatUnivBndrs</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089264"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-505"></span><span>            </span><span id="local-6989586621681089247"><span class="annot"><span class="annottext">[VarBndr IfaceBndr Specificity]
</span><a href="#local-6989586621681089247"><span class="hs-identifier hs-var">pat_ex_bndrs</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(VarBndr IfaceBndr Specificity
 -&gt; IOEnv (Env ShIfEnv ()) (VarBndr IfaceBndr Specificity))
-&gt; [VarBndr IfaceBndr Specificity]
-&gt; IOEnv (Env ShIfEnv ()) [VarBndr IfaceBndr Specificity]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="annot"><span class="annottext">VarBndr IfaceBndr Specificity
-&gt; IOEnv (Env ShIfEnv ()) (VarBndr IfaceBndr Specificity)
forall flag. Rename (VarBndr IfaceBndr flag)
</span><a href="GHC.Iface.Rename.html#rnIfaceForAllBndr"><span class="hs-identifier hs-var">rnIfaceForAllBndr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceDecl -&gt; [VarBndr IfaceBndr Specificity]
</span><a href="GHC.Iface.Syntax.html#ifPatExBndrs"><span class="hs-identifier hs-var hs-var">ifPatExBndrs</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089264"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-506"></span><span>            </span><span id="local-6989586621681089245"><span class="annot"><span class="annottext">[IfaceType]
</span><a href="#local-6989586621681089245"><span class="hs-identifier hs-var">pat_prov_ctxt</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
-&gt; [IfaceType] -&gt; IOEnv (Env ShIfEnv ()) [IfaceType]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
</span><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceDecl -&gt; [IfaceType]
</span><a href="GHC.Iface.Syntax.html#ifPatProvCtxt"><span class="hs-identifier hs-var hs-var">ifPatProvCtxt</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089264"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-507"></span><span>            </span><span id="local-6989586621681089243"><span class="annot"><span class="annottext">[IfaceType]
</span><a href="#local-6989586621681089243"><span class="hs-identifier hs-var">pat_req_ctxt</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
-&gt; [IfaceType] -&gt; IOEnv (Env ShIfEnv ()) [IfaceType]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
</span><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceDecl -&gt; [IfaceType]
</span><a href="GHC.Iface.Syntax.html#ifPatReqCtxt"><span class="hs-identifier hs-var hs-var">ifPatReqCtxt</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089264"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-508"></span><span>            </span><span id="local-6989586621681089241"><span class="annot"><span class="annottext">[IfaceType]
</span><a href="#local-6989586621681089241"><span class="hs-identifier hs-var">pat_args</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
-&gt; [IfaceType] -&gt; IOEnv (Env ShIfEnv ()) [IfaceType]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
</span><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceDecl -&gt; [IfaceType]
</span><a href="GHC.Iface.Syntax.html#ifPatArgs"><span class="hs-identifier hs-var hs-var">ifPatArgs</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089264"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-509"></span><span>            </span><span id="local-6989586621681089239"><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681089239"><span class="hs-identifier hs-var">pat_ty</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
</span><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceDecl -&gt; IfaceType
</span><a href="GHC.Iface.Syntax.html#ifPatTy"><span class="hs-identifier hs-var hs-var">ifPatTy</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089264"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-510"></span><span>            </span><span class="annot"><span class="annottext">Rename IfaceDecl
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089264"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">ifName :: Name
</span><a href="GHC.Iface.Syntax.html#ifName"><span class="hs-identifier hs-var">ifName</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089262"><span class="hs-identifier hs-var">name</span></a></span><span>
</span><span id="line-511"></span><span>                     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ifPatMatcher :: (Name, Bool)
</span><a href="GHC.Iface.Syntax.html#ifPatMatcher"><span class="hs-identifier hs-var">ifPatMatcher</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Name, Bool)
</span><a href="#local-6989586621681089255"><span class="hs-identifier hs-var">pat_matcher</span></a></span><span>
</span><span id="line-512"></span><span>                     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ifPatBuilder :: Maybe (Name, Bool)
</span><a href="GHC.Iface.Syntax.html#ifPatBuilder"><span class="hs-identifier hs-var">ifPatBuilder</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe (Name, Bool)
</span><a href="#local-6989586621681089253"><span class="hs-identifier hs-var">pat_builder</span></a></span><span>
</span><span id="line-513"></span><span>                     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ifPatUnivBndrs :: [VarBndr IfaceBndr Specificity]
</span><a href="GHC.Iface.Syntax.html#ifPatUnivBndrs"><span class="hs-identifier hs-var">ifPatUnivBndrs</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[VarBndr IfaceBndr Specificity]
</span><a href="#local-6989586621681089250"><span class="hs-identifier hs-var">pat_univ_bndrs</span></a></span><span>
</span><span id="line-514"></span><span>                     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ifPatExBndrs :: [VarBndr IfaceBndr Specificity]
</span><a href="GHC.Iface.Syntax.html#ifPatExBndrs"><span class="hs-identifier hs-var">ifPatExBndrs</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[VarBndr IfaceBndr Specificity]
</span><a href="#local-6989586621681089247"><span class="hs-identifier hs-var">pat_ex_bndrs</span></a></span><span>
</span><span id="line-515"></span><span>                     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ifPatProvCtxt :: [IfaceType]
</span><a href="GHC.Iface.Syntax.html#ifPatProvCtxt"><span class="hs-identifier hs-var">ifPatProvCtxt</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[IfaceType]
</span><a href="#local-6989586621681089245"><span class="hs-identifier hs-var">pat_prov_ctxt</span></a></span><span>
</span><span id="line-516"></span><span>                     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ifPatReqCtxt :: [IfaceType]
</span><a href="GHC.Iface.Syntax.html#ifPatReqCtxt"><span class="hs-identifier hs-var">ifPatReqCtxt</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[IfaceType]
</span><a href="#local-6989586621681089243"><span class="hs-identifier hs-var">pat_req_ctxt</span></a></span><span>
</span><span id="line-517"></span><span>                     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ifPatArgs :: [IfaceType]
</span><a href="GHC.Iface.Syntax.html#ifPatArgs"><span class="hs-identifier hs-var">ifPatArgs</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[IfaceType]
</span><a href="#local-6989586621681089241"><span class="hs-identifier hs-var">pat_args</span></a></span><span>
</span><span id="line-518"></span><span>                     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ifPatTy :: IfaceType
</span><a href="GHC.Iface.Syntax.html#ifPatTy"><span class="hs-identifier hs-var">ifPatTy</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681089239"><span class="hs-identifier hs-var">pat_ty</span></a></span><span>
</span><span id="line-519"></span><span>                     </span><span class="hs-special">}</span><span>
</span><span id="line-520"></span><span>
</span><span id="line-521"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceClassBody"><span class="hs-identifier hs-type">rnIfaceClassBody</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#Rename"><span class="hs-identifier hs-type">Rename</span></a></span><span> </span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceClassBody"><span class="hs-identifier hs-type">IfaceClassBody</span></a></span><span>
</span><span id="line-522"></span><span id="rnIfaceClassBody"><span class="annot"><span class="annottext">rnIfaceClassBody :: Rename IfaceClassBody
</span><a href="GHC.Iface.Rename.html#rnIfaceClassBody"><span class="hs-identifier hs-var hs-var">rnIfaceClassBody</span></a></span></span><span> </span><span class="annot"><span class="annottext">IfaceClassBody
</span><a href="GHC.Iface.Syntax.html#IfAbstractClass"><span class="hs-identifier hs-var">IfAbstractClass</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Rename IfaceClassBody
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceClassBody
</span><a href="GHC.Iface.Syntax.html#IfAbstractClass"><span class="hs-identifier hs-var">IfAbstractClass</span></a></span><span>
</span><span id="line-523"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceClassBody"><span class="hs-identifier hs-var">rnIfaceClassBody</span></a></span><span> </span><span id="local-6989586621681089236"><span class="annot"><span class="annottext">d :: IfaceClassBody
</span><a href="#local-6989586621681089236"><span class="hs-identifier hs-var">d</span></a></span></span><span class="hs-glyph">@</span><span class="annot"><a href="GHC.Iface.Syntax.html#IfConcreteClass"><span class="hs-identifier hs-type">IfConcreteClass</span></a></span><span class="hs-special">{</span><span class="hs-special">}</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-524"></span><span>    </span><span id="local-6989586621681089234"><span class="annot"><span class="annottext">[IfaceType]
</span><a href="#local-6989586621681089234"><span class="hs-identifier hs-var">ctxt</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
-&gt; [IfaceType] -&gt; IOEnv (Env ShIfEnv ()) [IfaceType]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
</span><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceClassBody -&gt; [IfaceType]
</span><a href="GHC.Iface.Syntax.html#ifClassCtxt"><span class="hs-identifier hs-var hs-var">ifClassCtxt</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceClassBody
</span><a href="#local-6989586621681089236"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-525"></span><span>    </span><span id="local-6989586621681089232"><span class="annot"><span class="annottext">[IfaceAT]
</span><a href="#local-6989586621681089232"><span class="hs-identifier hs-var">ats</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(IfaceAT -&gt; IOEnv (Env ShIfEnv ()) IfaceAT)
-&gt; [IfaceAT] -&gt; IOEnv (Env ShIfEnv ()) [IfaceAT]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceAT -&gt; IOEnv (Env ShIfEnv ()) IfaceAT
</span><a href="GHC.Iface.Rename.html#rnIfaceAT"><span class="hs-identifier hs-var">rnIfaceAT</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceClassBody -&gt; [IfaceAT]
</span><a href="GHC.Iface.Syntax.html#ifATs"><span class="hs-identifier hs-var hs-var">ifATs</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceClassBody
</span><a href="#local-6989586621681089236"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-526"></span><span>    </span><span id="local-6989586621681089229"><span class="annot"><span class="annottext">[IfaceClassOp]
</span><a href="#local-6989586621681089229"><span class="hs-identifier hs-var">sigs</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(IfaceClassOp -&gt; IOEnv (Env ShIfEnv ()) IfaceClassOp)
-&gt; [IfaceClassOp] -&gt; IOEnv (Env ShIfEnv ()) [IfaceClassOp]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceClassOp -&gt; IOEnv (Env ShIfEnv ()) IfaceClassOp
</span><a href="GHC.Iface.Rename.html#rnIfaceClassOp"><span class="hs-identifier hs-var">rnIfaceClassOp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceClassBody -&gt; [IfaceClassOp]
</span><a href="GHC.Iface.Syntax.html#ifSigs"><span class="hs-identifier hs-var hs-var">ifSigs</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceClassBody
</span><a href="#local-6989586621681089236"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-527"></span><span>    </span><span class="annot"><span class="annottext">Rename IfaceClassBody
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceClassBody
</span><a href="#local-6989586621681089236"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">ifClassCtxt :: [IfaceType]
</span><a href="GHC.Iface.Syntax.html#ifClassCtxt"><span class="hs-identifier hs-var">ifClassCtxt</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[IfaceType]
</span><a href="#local-6989586621681089234"><span class="hs-identifier hs-var">ctxt</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ifATs :: [IfaceAT]
</span><a href="GHC.Iface.Syntax.html#ifATs"><span class="hs-identifier hs-var">ifATs</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[IfaceAT]
</span><a href="#local-6989586621681089232"><span class="hs-identifier hs-var">ats</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ifSigs :: [IfaceClassOp]
</span><a href="GHC.Iface.Syntax.html#ifSigs"><span class="hs-identifier hs-var">ifSigs</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[IfaceClassOp]
</span><a href="#local-6989586621681089229"><span class="hs-identifier hs-var">sigs</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-528"></span><span>
</span><span id="line-529"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceFamTyConFlav"><span class="hs-identifier hs-type">rnIfaceFamTyConFlav</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#Rename"><span class="hs-identifier hs-type">Rename</span></a></span><span> </span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceFamTyConFlav"><span class="hs-identifier hs-type">IfaceFamTyConFlav</span></a></span><span>
</span><span id="line-530"></span><span id="rnIfaceFamTyConFlav"><span class="annot"><span class="annottext">rnIfaceFamTyConFlav :: Rename IfaceFamTyConFlav
</span><a href="GHC.Iface.Rename.html#rnIfaceFamTyConFlav"><span class="hs-identifier hs-var hs-var">rnIfaceFamTyConFlav</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceClosedSynFamilyTyCon"><span class="hs-identifier hs-type">IfaceClosedSynFamilyTyCon</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span class="hs-special">(</span><span id="local-6989586621681089225"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089225"><span class="hs-identifier hs-var">n</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621681089224"><span class="annot"><span class="annottext">[IfaceAxBranch]
</span><a href="#local-6989586621681089224"><span class="hs-identifier hs-var">axs</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-531"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe (Name, [IfaceAxBranch]) -&gt; IfaceFamTyConFlav
</span><a href="GHC.Iface.Syntax.html#IfaceClosedSynFamilyTyCon"><span class="hs-identifier hs-var">IfaceClosedSynFamilyTyCon</span></a></span><span> </span><span class="annot"><span class="annottext">(Maybe (Name, [IfaceAxBranch]) -&gt; IfaceFamTyConFlav)
-&gt; ((Name, [IfaceAxBranch]) -&gt; Maybe (Name, [IfaceAxBranch]))
-&gt; (Name, [IfaceAxBranch])
-&gt; IfaceFamTyConFlav
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">(Name, [IfaceAxBranch]) -&gt; Maybe (Name, [IfaceAxBranch])
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="annot"><span class="annottext">((Name, [IfaceAxBranch]) -&gt; IfaceFamTyConFlav)
-&gt; IOEnv (Env ShIfEnv ()) (Name, [IfaceAxBranch])
-&gt; IOEnv (Env ShIfEnv ()) IfaceFamTyConFlav
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">(</span><span class="hs-special">,</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(Name -&gt; [IfaceAxBranch] -&gt; (Name, [IfaceAxBranch]))
-&gt; IOEnv (Env ShIfEnv ()) Name
-&gt; IOEnv
     (Env ShIfEnv ()) ([IfaceAxBranch] -&gt; (Name, [IfaceAxBranch]))
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; IOEnv (Env ShIfEnv ()) Name
</span><a href="GHC.Iface.Rename.html#rnIfaceNeverExported"><span class="hs-identifier hs-var">rnIfaceNeverExported</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089225"><span class="hs-identifier hs-var">n</span></a></span><span>
</span><span id="line-532"></span><span>                                                </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) ([IfaceAxBranch] -&gt; (Name, [IfaceAxBranch]))
-&gt; IOEnv (Env ShIfEnv ()) [IfaceAxBranch]
-&gt; IOEnv (Env ShIfEnv ()) (Name, [IfaceAxBranch])
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceAxBranch -&gt; IOEnv (Env ShIfEnv ()) IfaceAxBranch)
-&gt; [IfaceAxBranch] -&gt; IOEnv (Env ShIfEnv ()) [IfaceAxBranch]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceAxBranch -&gt; IOEnv (Env ShIfEnv ()) IfaceAxBranch
</span><a href="GHC.Iface.Rename.html#rnIfaceAxBranch"><span class="hs-identifier hs-var">rnIfaceAxBranch</span></a></span><span> </span><span class="annot"><span class="annottext">[IfaceAxBranch]
</span><a href="#local-6989586621681089224"><span class="hs-identifier hs-var">axs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-533"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceFamTyConFlav"><span class="hs-identifier hs-var">rnIfaceFamTyConFlav</span></a></span><span> </span><span id="local-6989586621681089223"><span class="annot"><span class="annottext">IfaceFamTyConFlav
</span><a href="#local-6989586621681089223"><span class="hs-identifier hs-var">flav</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Rename IfaceFamTyConFlav
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceFamTyConFlav
</span><a href="#local-6989586621681089223"><span class="hs-identifier hs-var">flav</span></a></span><span>
</span><span id="line-534"></span><span>
</span><span id="line-535"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceAT"><span class="hs-identifier hs-type">rnIfaceAT</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#Rename"><span class="hs-identifier hs-type">Rename</span></a></span><span> </span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceAT"><span class="hs-identifier hs-type">IfaceAT</span></a></span><span>
</span><span id="line-536"></span><span id="rnIfaceAT"><span class="annot"><span class="annottext">rnIfaceAT :: IfaceAT -&gt; IOEnv (Env ShIfEnv ()) IfaceAT
</span><a href="GHC.Iface.Rename.html#rnIfaceAT"><span class="hs-identifier hs-var hs-var">rnIfaceAT</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceAT"><span class="hs-identifier hs-type">IfaceAT</span></a></span><span> </span><span id="local-6989586621681089221"><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089221"><span class="hs-identifier hs-var">decl</span></a></span></span><span> </span><span id="local-6989586621681089220"><span class="annot"><span class="annottext">Maybe IfaceType
</span><a href="#local-6989586621681089220"><span class="hs-identifier hs-var">mb_ty</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-537"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceDecl -&gt; Maybe IfaceType -&gt; IfaceAT
</span><a href="GHC.Iface.Syntax.html#IfaceAT"><span class="hs-identifier hs-var">IfaceAT</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceDecl -&gt; Maybe IfaceType -&gt; IfaceAT)
-&gt; IOEnv (Env ShIfEnv ()) IfaceDecl
-&gt; IOEnv (Env ShIfEnv ()) (Maybe IfaceType -&gt; IfaceAT)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceDecl
</span><a href="GHC.Iface.Rename.html#rnIfaceDecl"><span class="hs-identifier hs-var">rnIfaceDecl</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681089221"><span class="hs-identifier hs-var">decl</span></a></span><span> </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) (Maybe IfaceType -&gt; IfaceAT)
-&gt; IOEnv (Env ShIfEnv ()) (Maybe IfaceType)
-&gt; IOEnv (Env ShIfEnv ()) IfaceAT
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
-&gt; Maybe IfaceType -&gt; IOEnv (Env ShIfEnv ()) (Maybe IfaceType)
forall (t :: * -&gt; *) (f :: * -&gt; *) a b.
(Traversable t, Applicative f) =&gt;
(a -&gt; f b) -&gt; t a -&gt; f (t b)
</span><a href="../../base/src/Data.Traversable.html#traverse"><span class="hs-identifier hs-var">T.traverse</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
</span><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe IfaceType
</span><a href="#local-6989586621681089220"><span class="hs-identifier hs-var">mb_ty</span></a></span><span>
</span><span id="line-538"></span><span>
</span><span id="line-539"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceTyConParent"><span class="hs-identifier hs-type">rnIfaceTyConParent</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#Rename"><span class="hs-identifier hs-type">Rename</span></a></span><span> </span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceTyConParent"><span class="hs-identifier hs-type">IfaceTyConParent</span></a></span><span>
</span><span id="line-540"></span><span id="rnIfaceTyConParent"><span class="annot"><span class="annottext">rnIfaceTyConParent :: Rename IfaceTyConParent
</span><a href="GHC.Iface.Rename.html#rnIfaceTyConParent"><span class="hs-identifier hs-var hs-var">rnIfaceTyConParent</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Syntax.html#IfDataInstance"><span class="hs-identifier hs-type">IfDataInstance</span></a></span><span> </span><span id="local-6989586621681089218"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089218"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span id="local-6989586621681089217"><span class="annot"><span class="annottext">IfaceTyCon
</span><a href="#local-6989586621681089217"><span class="hs-identifier hs-var">tc</span></a></span></span><span> </span><span id="local-6989586621681089216"><span class="annot"><span class="annottext">IfaceAppArgs
</span><a href="#local-6989586621681089216"><span class="hs-identifier hs-var">args</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-541"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Name -&gt; IfaceTyCon -&gt; IfaceAppArgs -&gt; IfaceTyConParent
</span><a href="GHC.Iface.Syntax.html#IfDataInstance"><span class="hs-identifier hs-var">IfDataInstance</span></a></span><span> </span><span class="annot"><span class="annottext">(Name -&gt; IfaceTyCon -&gt; IfaceAppArgs -&gt; IfaceTyConParent)
-&gt; IOEnv (Env ShIfEnv ()) Name
-&gt; IOEnv
     (Env ShIfEnv ()) (IfaceTyCon -&gt; IfaceAppArgs -&gt; IfaceTyConParent)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; IOEnv (Env ShIfEnv ()) Name
</span><a href="GHC.Iface.Rename.html#rnIfaceGlobal"><span class="hs-identifier hs-var">rnIfaceGlobal</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089218"><span class="hs-identifier hs-var">n</span></a></span><span>
</span><span id="line-542"></span><span>                     </span><span class="annot"><span class="annottext">IOEnv
  (Env ShIfEnv ()) (IfaceTyCon -&gt; IfaceAppArgs -&gt; IfaceTyConParent)
-&gt; IOEnv (Env ShIfEnv ()) IfaceTyCon
-&gt; IOEnv (Env ShIfEnv ()) (IfaceAppArgs -&gt; IfaceTyConParent)
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceTyCon
</span><a href="GHC.Iface.Rename.html#rnIfaceTyCon"><span class="hs-identifier hs-var">rnIfaceTyCon</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceTyCon
</span><a href="#local-6989586621681089217"><span class="hs-identifier hs-var">tc</span></a></span><span>
</span><span id="line-543"></span><span>                     </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) (IfaceAppArgs -&gt; IfaceTyConParent)
-&gt; IOEnv (Env ShIfEnv ()) IfaceAppArgs
-&gt; IOEnv (Env ShIfEnv ()) IfaceTyConParent
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceAppArgs
</span><a href="GHC.Iface.Rename.html#rnIfaceAppArgs"><span class="hs-identifier hs-var">rnIfaceAppArgs</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceAppArgs
</span><a href="#local-6989586621681089216"><span class="hs-identifier hs-var">args</span></a></span><span>
</span><span id="line-544"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceTyConParent"><span class="hs-identifier hs-var">rnIfaceTyConParent</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceTyConParent
</span><a href="GHC.Iface.Syntax.html#IfNoParent"><span class="hs-identifier hs-var">IfNoParent</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Rename IfaceTyConParent
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceTyConParent
</span><a href="GHC.Iface.Syntax.html#IfNoParent"><span class="hs-identifier hs-var">IfNoParent</span></a></span><span>
</span><span id="line-545"></span><span>
</span><span id="line-546"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceConDecls"><span class="hs-identifier hs-type">rnIfaceConDecls</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#Rename"><span class="hs-identifier hs-type">Rename</span></a></span><span> </span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceConDecls"><span class="hs-identifier hs-type">IfaceConDecls</span></a></span><span>
</span><span id="line-547"></span><span id="rnIfaceConDecls"><span class="annot"><span class="annottext">rnIfaceConDecls :: Rename IfaceConDecls
</span><a href="GHC.Iface.Rename.html#rnIfaceConDecls"><span class="hs-identifier hs-var hs-var">rnIfaceConDecls</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Syntax.html#IfDataTyCon"><span class="hs-identifier hs-type">IfDataTyCon</span></a></span><span> </span><span id="local-6989586621681089212"><span class="annot"><span class="annottext">[IfaceConDecl]
</span><a href="#local-6989586621681089212"><span class="hs-identifier hs-var">ds</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-548"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[IfaceConDecl] -&gt; IfaceConDecls
</span><a href="GHC.Iface.Syntax.html#IfDataTyCon"><span class="hs-identifier hs-var">IfDataTyCon</span></a></span><span> </span><span class="annot"><span class="annottext">([IfaceConDecl] -&gt; IfaceConDecls)
-&gt; IOEnv (Env ShIfEnv ()) [IfaceConDecl]
-&gt; IOEnv (Env ShIfEnv ()) IfaceConDecls
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceConDecl -&gt; IOEnv (Env ShIfEnv ()) IfaceConDecl)
-&gt; [IfaceConDecl] -&gt; IOEnv (Env ShIfEnv ()) [IfaceConDecl]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceConDecl -&gt; IOEnv (Env ShIfEnv ()) IfaceConDecl
</span><a href="GHC.Iface.Rename.html#rnIfaceConDecl"><span class="hs-identifier hs-var">rnIfaceConDecl</span></a></span><span> </span><span class="annot"><span class="annottext">[IfaceConDecl]
</span><a href="#local-6989586621681089212"><span class="hs-identifier hs-var">ds</span></a></span><span>
</span><span id="line-549"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceConDecls"><span class="hs-identifier hs-var">rnIfaceConDecls</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Syntax.html#IfNewTyCon"><span class="hs-identifier hs-type">IfNewTyCon</span></a></span><span> </span><span id="local-6989586621681089209"><span class="annot"><span class="annottext">IfaceConDecl
</span><a href="#local-6989586621681089209"><span class="hs-identifier hs-var">d</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceConDecl -&gt; IfaceConDecls
</span><a href="GHC.Iface.Syntax.html#IfNewTyCon"><span class="hs-identifier hs-var">IfNewTyCon</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceConDecl -&gt; IfaceConDecls)
-&gt; IOEnv (Env ShIfEnv ()) IfaceConDecl
-&gt; IOEnv (Env ShIfEnv ()) IfaceConDecls
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceConDecl -&gt; IOEnv (Env ShIfEnv ()) IfaceConDecl
</span><a href="GHC.Iface.Rename.html#rnIfaceConDecl"><span class="hs-identifier hs-var">rnIfaceConDecl</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceConDecl
</span><a href="#local-6989586621681089209"><span class="hs-identifier hs-var">d</span></a></span><span>
</span><span id="line-550"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceConDecls"><span class="hs-identifier hs-var">rnIfaceConDecls</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceConDecls
</span><a href="GHC.Iface.Syntax.html#IfAbstractTyCon"><span class="hs-identifier hs-var">IfAbstractTyCon</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Rename IfaceConDecls
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceConDecls
</span><a href="GHC.Iface.Syntax.html#IfAbstractTyCon"><span class="hs-identifier hs-var">IfAbstractTyCon</span></a></span><span>
</span><span id="line-551"></span><span>
</span><span id="line-552"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceConDecl"><span class="hs-identifier hs-type">rnIfaceConDecl</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#Rename"><span class="hs-identifier hs-type">Rename</span></a></span><span> </span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceConDecl"><span class="hs-identifier hs-type">IfaceConDecl</span></a></span><span>
</span><span id="line-553"></span><span id="rnIfaceConDecl"><span class="annot"><span class="annottext">rnIfaceConDecl :: IfaceConDecl -&gt; IOEnv (Env ShIfEnv ()) IfaceConDecl
</span><a href="GHC.Iface.Rename.html#rnIfaceConDecl"><span class="hs-identifier hs-var hs-var">rnIfaceConDecl</span></a></span></span><span> </span><span id="local-6989586621681089207"><span class="annot"><span class="annottext">IfaceConDecl
</span><a href="#local-6989586621681089207"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-554"></span><span>    </span><span id="local-6989586621681089206"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089206"><span class="hs-identifier hs-var">con_name</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Name -&gt; IOEnv (Env ShIfEnv ()) Name
</span><a href="GHC.Iface.Rename.html#rnIfaceGlobal"><span class="hs-identifier hs-var">rnIfaceGlobal</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceConDecl -&gt; Name
</span><a href="GHC.Iface.Syntax.html#ifConName"><span class="hs-identifier hs-var hs-var">ifConName</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceConDecl
</span><a href="#local-6989586621681089207"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-555"></span><span>    </span><span id="local-6989586621681089204"><span class="annot"><span class="annottext">[IfaceBndr]
</span><a href="#local-6989586621681089204"><span class="hs-identifier hs-var">con_ex_tvs</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(IfaceBndr -&gt; IOEnv (Env ShIfEnv ()) IfaceBndr)
-&gt; [IfaceBndr] -&gt; IOEnv (Env ShIfEnv ()) [IfaceBndr]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceBndr -&gt; IOEnv (Env ShIfEnv ()) IfaceBndr
</span><a href="GHC.Iface.Rename.html#rnIfaceBndr"><span class="hs-identifier hs-var">rnIfaceBndr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceConDecl -&gt; [IfaceBndr]
</span><a href="GHC.Iface.Syntax.html#ifConExTCvs"><span class="hs-identifier hs-var hs-var">ifConExTCvs</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceConDecl
</span><a href="#local-6989586621681089207"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-556"></span><span>    </span><span id="local-6989586621681089201"><span class="annot"><span class="annottext">[VarBndr IfaceBndr Specificity]
</span><a href="#local-6989586621681089201"><span class="hs-identifier hs-var">con_user_tvbs</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(VarBndr IfaceBndr Specificity
 -&gt; IOEnv (Env ShIfEnv ()) (VarBndr IfaceBndr Specificity))
-&gt; [VarBndr IfaceBndr Specificity]
-&gt; IOEnv (Env ShIfEnv ()) [VarBndr IfaceBndr Specificity]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="annot"><span class="annottext">VarBndr IfaceBndr Specificity
-&gt; IOEnv (Env ShIfEnv ()) (VarBndr IfaceBndr Specificity)
forall flag. Rename (VarBndr IfaceBndr flag)
</span><a href="GHC.Iface.Rename.html#rnIfaceForAllBndr"><span class="hs-identifier hs-var">rnIfaceForAllBndr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceConDecl -&gt; [VarBndr IfaceBndr Specificity]
</span><a href="GHC.Iface.Syntax.html#ifConUserTvBinders"><span class="hs-identifier hs-var hs-var">ifConUserTvBinders</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceConDecl
</span><a href="#local-6989586621681089207"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-557"></span><span>    </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681089198"><span class="annot"><span class="annottext">rnIfConEqSpec :: (a, IfaceType) -&gt; IOEnv (Env ShIfEnv ()) (a, IfaceType)
</span><a href="#local-6989586621681089198"><span class="hs-identifier hs-var hs-var">rnIfConEqSpec</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621681089197"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621681089197"><span class="hs-identifier hs-var">n</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621681089196"><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681089196"><span class="hs-identifier hs-var">t</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="hs-special">,</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621681089197"><span class="hs-identifier hs-var">n</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceType -&gt; (a, IfaceType))
-&gt; IOEnv (Env ShIfEnv ()) IfaceType
-&gt; IOEnv (Env ShIfEnv ()) (a, IfaceType)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
</span><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681089196"><span class="hs-identifier hs-var">t</span></a></span><span>
</span><span id="line-558"></span><span>    </span><span id="local-6989586621681089195"><span class="annot"><span class="annottext">[(FieldLabelString, IfaceType)]
</span><a href="#local-6989586621681089195"><span class="hs-identifier hs-var">con_eq_spec</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">((FieldLabelString, IfaceType)
 -&gt; IOEnv (Env ShIfEnv ()) (FieldLabelString, IfaceType))
-&gt; [(FieldLabelString, IfaceType)]
-&gt; IOEnv (Env ShIfEnv ()) [(FieldLabelString, IfaceType)]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="annot"><span class="annottext">(FieldLabelString, IfaceType)
-&gt; IOEnv (Env ShIfEnv ()) (FieldLabelString, IfaceType)
forall {a}. (a, IfaceType) -&gt; IOEnv (Env ShIfEnv ()) (a, IfaceType)
</span><a href="#local-6989586621681089198"><span class="hs-identifier hs-var">rnIfConEqSpec</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceConDecl -&gt; [(FieldLabelString, IfaceType)]
</span><a href="GHC.Iface.Syntax.html#ifConEqSpec"><span class="hs-identifier hs-var hs-var">ifConEqSpec</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceConDecl
</span><a href="#local-6989586621681089207"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-559"></span><span>    </span><span id="local-6989586621681089193"><span class="annot"><span class="annottext">[IfaceType]
</span><a href="#local-6989586621681089193"><span class="hs-identifier hs-var">con_ctxt</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
-&gt; [IfaceType] -&gt; IOEnv (Env ShIfEnv ()) [IfaceType]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
</span><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceConDecl -&gt; [IfaceType]
</span><a href="GHC.Iface.Syntax.html#ifConCtxt"><span class="hs-identifier hs-var hs-var">ifConCtxt</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceConDecl
</span><a href="#local-6989586621681089207"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-560"></span><span>    </span><span id="local-6989586621681089191"><span class="annot"><span class="annottext">[(IfaceType, IfaceType)]
</span><a href="#local-6989586621681089191"><span class="hs-identifier hs-var">con_arg_tys</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">((IfaceType, IfaceType)
 -&gt; IOEnv (Env ShIfEnv ()) (IfaceType, IfaceType))
-&gt; [(IfaceType, IfaceType)]
-&gt; IOEnv (Env ShIfEnv ()) [(IfaceType, IfaceType)]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceType, IfaceType)
-&gt; IOEnv (Env ShIfEnv ()) (IfaceType, IfaceType)
</span><a href="GHC.Iface.Rename.html#rnIfaceScaledType"><span class="hs-identifier hs-var">rnIfaceScaledType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceConDecl -&gt; [(IfaceType, IfaceType)]
</span><a href="GHC.Iface.Syntax.html#ifConArgTys"><span class="hs-identifier hs-var hs-var">ifConArgTys</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceConDecl
</span><a href="#local-6989586621681089207"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-561"></span><span>    </span><span id="local-6989586621681089188"><span class="annot"><span class="annottext">[FieldLabel]
</span><a href="#local-6989586621681089188"><span class="hs-identifier hs-var">con_fields</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(FieldLabel -&gt; IOEnv (Env ShIfEnv ()) FieldLabel)
-&gt; [FieldLabel] -&gt; IOEnv (Env ShIfEnv ()) [FieldLabel]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="annot"><span class="annottext">FieldLabel -&gt; IOEnv (Env ShIfEnv ()) FieldLabel
</span><a href="GHC.Iface.Rename.html#rnFieldLabel"><span class="hs-identifier hs-var">rnFieldLabel</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceConDecl -&gt; [FieldLabel]
</span><a href="GHC.Iface.Syntax.html#ifConFields"><span class="hs-identifier hs-var hs-var">ifConFields</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceConDecl
</span><a href="#local-6989586621681089207"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-562"></span><span>    </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681089184"><span class="annot"><span class="annottext">rnIfaceBang :: IfaceBang -&gt; IOEnv (Env ShIfEnv ()) IfaceBang
</span><a href="#local-6989586621681089184"><span class="hs-identifier hs-var hs-var">rnIfaceBang</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Syntax.html#IfUnpackCo"><span class="hs-identifier hs-type">IfUnpackCo</span></a></span><span> </span><span id="local-6989586621681089182"><span class="annot"><span class="annottext">IfaceCoercion
</span><a href="#local-6989586621681089182"><span class="hs-identifier hs-var">co</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceCoercion -&gt; IfaceBang
</span><a href="GHC.Iface.Syntax.html#IfUnpackCo"><span class="hs-identifier hs-var">IfUnpackCo</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceCoercion -&gt; IfaceBang)
-&gt; IOEnv (Env ShIfEnv ()) IfaceCoercion
-&gt; IOEnv (Env ShIfEnv ()) IfaceBang
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceCoercion
</span><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-var">rnIfaceCo</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceCoercion
</span><a href="#local-6989586621681089182"><span class="hs-identifier hs-var">co</span></a></span><span>
</span><span id="line-563"></span><span>        </span><span class="annot"><a href="#local-6989586621681089184"><span class="hs-identifier hs-var">rnIfaceBang</span></a></span><span> </span><span id="local-6989586621681089180"><span class="annot"><span class="annottext">IfaceBang
</span><a href="#local-6989586621681089180"><span class="hs-identifier hs-var">bang</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceBang -&gt; IOEnv (Env ShIfEnv ()) IfaceBang
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceBang
</span><a href="#local-6989586621681089180"><span class="hs-identifier hs-var">bang</span></a></span><span>
</span><span id="line-564"></span><span>    </span><span id="local-6989586621681089179"><span class="annot"><span class="annottext">[IfaceBang]
</span><a href="#local-6989586621681089179"><span class="hs-identifier hs-var">con_stricts</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">(IfaceBang -&gt; IOEnv (Env ShIfEnv ()) IfaceBang)
-&gt; [IfaceBang] -&gt; IOEnv (Env ShIfEnv ()) [IfaceBang]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceBang -&gt; IOEnv (Env ShIfEnv ()) IfaceBang
</span><a href="#local-6989586621681089184"><span class="hs-identifier hs-var">rnIfaceBang</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceConDecl -&gt; [IfaceBang]
</span><a href="GHC.Iface.Syntax.html#ifConStricts"><span class="hs-identifier hs-var hs-var">ifConStricts</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceConDecl
</span><a href="#local-6989586621681089207"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-565"></span><span>    </span><span class="annot"><span class="annottext">IfaceConDecl -&gt; IOEnv (Env ShIfEnv ()) IfaceConDecl
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceConDecl
</span><a href="#local-6989586621681089207"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">ifConName :: Name
</span><a href="GHC.Iface.Syntax.html#ifConName"><span class="hs-identifier hs-var">ifConName</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089206"><span class="hs-identifier hs-var">con_name</span></a></span><span>
</span><span id="line-566"></span><span>             </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ifConExTCvs :: [IfaceBndr]
</span><a href="GHC.Iface.Syntax.html#ifConExTCvs"><span class="hs-identifier hs-var">ifConExTCvs</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[IfaceBndr]
</span><a href="#local-6989586621681089204"><span class="hs-identifier hs-var">con_ex_tvs</span></a></span><span>
</span><span id="line-567"></span><span>             </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ifConUserTvBinders :: [VarBndr IfaceBndr Specificity]
</span><a href="GHC.Iface.Syntax.html#ifConUserTvBinders"><span class="hs-identifier hs-var">ifConUserTvBinders</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[VarBndr IfaceBndr Specificity]
</span><a href="#local-6989586621681089201"><span class="hs-identifier hs-var">con_user_tvbs</span></a></span><span>
</span><span id="line-568"></span><span>             </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ifConEqSpec :: [(FieldLabelString, IfaceType)]
</span><a href="GHC.Iface.Syntax.html#ifConEqSpec"><span class="hs-identifier hs-var">ifConEqSpec</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[(FieldLabelString, IfaceType)]
</span><a href="#local-6989586621681089195"><span class="hs-identifier hs-var">con_eq_spec</span></a></span><span>
</span><span id="line-569"></span><span>             </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ifConCtxt :: [IfaceType]
</span><a href="GHC.Iface.Syntax.html#ifConCtxt"><span class="hs-identifier hs-var">ifConCtxt</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[IfaceType]
</span><a href="#local-6989586621681089193"><span class="hs-identifier hs-var">con_ctxt</span></a></span><span>
</span><span id="line-570"></span><span>             </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ifConArgTys :: [(IfaceType, IfaceType)]
</span><a href="GHC.Iface.Syntax.html#ifConArgTys"><span class="hs-identifier hs-var">ifConArgTys</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[(IfaceType, IfaceType)]
</span><a href="#local-6989586621681089191"><span class="hs-identifier hs-var">con_arg_tys</span></a></span><span>
</span><span id="line-571"></span><span>             </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ifConFields :: [FieldLabel]
</span><a href="GHC.Iface.Syntax.html#ifConFields"><span class="hs-identifier hs-var">ifConFields</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[FieldLabel]
</span><a href="#local-6989586621681089188"><span class="hs-identifier hs-var">con_fields</span></a></span><span>
</span><span id="line-572"></span><span>             </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ifConStricts :: [IfaceBang]
</span><a href="GHC.Iface.Syntax.html#ifConStricts"><span class="hs-identifier hs-var">ifConStricts</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[IfaceBang]
</span><a href="#local-6989586621681089179"><span class="hs-identifier hs-var">con_stricts</span></a></span><span>
</span><span id="line-573"></span><span>             </span><span class="hs-special">}</span><span>
</span><span id="line-574"></span><span>
</span><span id="line-575"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceClassOp"><span class="hs-identifier hs-type">rnIfaceClassOp</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#Rename"><span class="hs-identifier hs-type">Rename</span></a></span><span> </span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceClassOp"><span class="hs-identifier hs-type">IfaceClassOp</span></a></span><span>
</span><span id="line-576"></span><span id="rnIfaceClassOp"><span class="annot"><span class="annottext">rnIfaceClassOp :: IfaceClassOp -&gt; IOEnv (Env ShIfEnv ()) IfaceClassOp
</span><a href="GHC.Iface.Rename.html#rnIfaceClassOp"><span class="hs-identifier hs-var hs-var">rnIfaceClassOp</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceClassOp"><span class="hs-identifier hs-type">IfaceClassOp</span></a></span><span> </span><span id="local-6989586621681089176"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089176"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span id="local-6989586621681089175"><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681089175"><span class="hs-identifier hs-var">ty</span></a></span></span><span> </span><span id="local-6989586621681089174"><span class="annot"><span class="annottext">Maybe (DefMethSpec IfaceType)
</span><a href="#local-6989586621681089174"><span class="hs-identifier hs-var">dm</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-577"></span><span>    </span><span class="annot"><span class="annottext">Name -&gt; IfaceType -&gt; Maybe (DefMethSpec IfaceType) -&gt; IfaceClassOp
</span><a href="GHC.Iface.Syntax.html#IfaceClassOp"><span class="hs-identifier hs-var">IfaceClassOp</span></a></span><span> </span><span class="annot"><span class="annottext">(Name
 -&gt; IfaceType -&gt; Maybe (DefMethSpec IfaceType) -&gt; IfaceClassOp)
-&gt; IOEnv (Env ShIfEnv ()) Name
-&gt; IOEnv
     (Env ShIfEnv ())
     (IfaceType -&gt; Maybe (DefMethSpec IfaceType) -&gt; IfaceClassOp)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; IOEnv (Env ShIfEnv ()) Name
</span><a href="GHC.Iface.Rename.html#rnIfaceGlobal"><span class="hs-identifier hs-var">rnIfaceGlobal</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089176"><span class="hs-identifier hs-var">n</span></a></span><span>
</span><span id="line-578"></span><span>                 </span><span class="annot"><span class="annottext">IOEnv
  (Env ShIfEnv ())
  (IfaceType -&gt; Maybe (DefMethSpec IfaceType) -&gt; IfaceClassOp)
-&gt; IOEnv (Env ShIfEnv ()) IfaceType
-&gt; IOEnv
     (Env ShIfEnv ()) (Maybe (DefMethSpec IfaceType) -&gt; IfaceClassOp)
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
</span><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681089175"><span class="hs-identifier hs-var">ty</span></a></span><span>
</span><span id="line-579"></span><span>                 </span><span class="annot"><span class="annottext">IOEnv
  (Env ShIfEnv ()) (Maybe (DefMethSpec IfaceType) -&gt; IfaceClassOp)
-&gt; IOEnv (Env ShIfEnv ()) (Maybe (DefMethSpec IfaceType))
-&gt; IOEnv (Env ShIfEnv ()) IfaceClassOp
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename (Maybe (DefMethSpec IfaceType))
</span><a href="GHC.Iface.Rename.html#rnMaybeDefMethSpec"><span class="hs-identifier hs-var">rnMaybeDefMethSpec</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe (DefMethSpec IfaceType)
</span><a href="#local-6989586621681089174"><span class="hs-identifier hs-var">dm</span></a></span><span>
</span><span id="line-580"></span><span>
</span><span id="line-581"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnMaybeDefMethSpec"><span class="hs-identifier hs-type">rnMaybeDefMethSpec</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#Rename"><span class="hs-identifier hs-type">Rename</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Basic.html#DefMethSpec"><span class="hs-identifier hs-type">DefMethSpec</span></a></span><span> </span><span class="annot"><a href="GHC.Iface.Type.html#IfaceType"><span class="hs-identifier hs-type">IfaceType</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-582"></span><span id="rnMaybeDefMethSpec"><span class="annot"><span class="annottext">rnMaybeDefMethSpec :: Rename (Maybe (DefMethSpec IfaceType))
</span><a href="GHC.Iface.Rename.html#rnMaybeDefMethSpec"><span class="hs-identifier hs-var hs-var">rnMaybeDefMethSpec</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Basic.html#GenericDM"><span class="hs-identifier hs-type">GenericDM</span></a></span><span> </span><span id="local-6989586621681089171"><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681089171"><span class="hs-identifier hs-var">ty</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">DefMethSpec IfaceType -&gt; Maybe (DefMethSpec IfaceType)
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="annot"><span class="annottext">(DefMethSpec IfaceType -&gt; Maybe (DefMethSpec IfaceType))
-&gt; (IfaceType -&gt; DefMethSpec IfaceType)
-&gt; IfaceType
-&gt; Maybe (DefMethSpec IfaceType)
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceType -&gt; DefMethSpec IfaceType
forall ty. ty -&gt; DefMethSpec ty
</span><a href="GHC.Types.Basic.html#GenericDM"><span class="hs-identifier hs-var">GenericDM</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceType -&gt; Maybe (DefMethSpec IfaceType))
-&gt; IOEnv (Env ShIfEnv ()) IfaceType
-&gt; IOEnv (Env ShIfEnv ()) (Maybe (DefMethSpec IfaceType))
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
</span><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681089171"><span class="hs-identifier hs-var">ty</span></a></span><span>
</span><span id="line-583"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnMaybeDefMethSpec"><span class="hs-identifier hs-var">rnMaybeDefMethSpec</span></a></span><span> </span><span id="local-6989586621681089170"><span class="annot"><span class="annottext">Maybe (DefMethSpec IfaceType)
</span><a href="#local-6989586621681089170"><span class="hs-identifier hs-var">mb</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Rename (Maybe (DefMethSpec IfaceType))
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe (DefMethSpec IfaceType)
</span><a href="#local-6989586621681089170"><span class="hs-identifier hs-var">mb</span></a></span><span>
</span><span id="line-584"></span><span>
</span><span id="line-585"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceAxBranch"><span class="hs-identifier hs-type">rnIfaceAxBranch</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#Rename"><span class="hs-identifier hs-type">Rename</span></a></span><span> </span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceAxBranch"><span class="hs-identifier hs-type">IfaceAxBranch</span></a></span><span>
</span><span id="line-586"></span><span id="rnIfaceAxBranch"><span class="annot"><span class="annottext">rnIfaceAxBranch :: IfaceAxBranch -&gt; IOEnv (Env ShIfEnv ()) IfaceAxBranch
</span><a href="GHC.Iface.Rename.html#rnIfaceAxBranch"><span class="hs-identifier hs-var hs-var">rnIfaceAxBranch</span></a></span></span><span> </span><span id="local-6989586621681089169"><span class="annot"><span class="annottext">IfaceAxBranch
</span><a href="#local-6989586621681089169"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-587"></span><span>    </span><span id="local-6989586621681089168"><span class="annot"><span class="annottext">[(FieldLabelString, IfaceType)]
</span><a href="#local-6989586621681089168"><span class="hs-identifier hs-var">ty_vars</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">((FieldLabelString, IfaceType)
 -&gt; IOEnv (Env ShIfEnv ()) (FieldLabelString, IfaceType))
-&gt; [(FieldLabelString, IfaceType)]
-&gt; IOEnv (Env ShIfEnv ()) [(FieldLabelString, IfaceType)]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="annot"><span class="annottext">(FieldLabelString, IfaceType)
-&gt; IOEnv (Env ShIfEnv ()) (FieldLabelString, IfaceType)
</span><a href="GHC.Iface.Rename.html#rnIfaceTvBndr"><span class="hs-identifier hs-var">rnIfaceTvBndr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceAxBranch -&gt; [(FieldLabelString, IfaceType)]
</span><a href="GHC.Iface.Syntax.html#ifaxbTyVars"><span class="hs-identifier hs-var hs-var">ifaxbTyVars</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceAxBranch
</span><a href="#local-6989586621681089169"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-588"></span><span>    </span><span id="local-6989586621681089165"><span class="annot"><span class="annottext">IfaceAppArgs
</span><a href="#local-6989586621681089165"><span class="hs-identifier hs-var">lhs</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Rename IfaceAppArgs
</span><a href="GHC.Iface.Rename.html#rnIfaceAppArgs"><span class="hs-identifier hs-var">rnIfaceAppArgs</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceAxBranch -&gt; IfaceAppArgs
</span><a href="GHC.Iface.Syntax.html#ifaxbLHS"><span class="hs-identifier hs-var hs-var">ifaxbLHS</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceAxBranch
</span><a href="#local-6989586621681089169"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-589"></span><span>    </span><span id="local-6989586621681089163"><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681089163"><span class="hs-identifier hs-var">rhs</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
</span><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceAxBranch -&gt; IfaceType
</span><a href="GHC.Iface.Syntax.html#ifaxbRHS"><span class="hs-identifier hs-var hs-var">ifaxbRHS</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceAxBranch
</span><a href="#local-6989586621681089169"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-590"></span><span>    </span><span class="annot"><span class="annottext">IfaceAxBranch -&gt; IOEnv (Env ShIfEnv ()) IfaceAxBranch
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceAxBranch
</span><a href="#local-6989586621681089169"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">ifaxbTyVars :: [(FieldLabelString, IfaceType)]
</span><a href="GHC.Iface.Syntax.html#ifaxbTyVars"><span class="hs-identifier hs-var">ifaxbTyVars</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[(FieldLabelString, IfaceType)]
</span><a href="#local-6989586621681089168"><span class="hs-identifier hs-var">ty_vars</span></a></span><span>
</span><span id="line-591"></span><span>             </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ifaxbLHS :: IfaceAppArgs
</span><a href="GHC.Iface.Syntax.html#ifaxbLHS"><span class="hs-identifier hs-var">ifaxbLHS</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceAppArgs
</span><a href="#local-6989586621681089165"><span class="hs-identifier hs-var">lhs</span></a></span><span>
</span><span id="line-592"></span><span>             </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ifaxbRHS :: IfaceType
</span><a href="GHC.Iface.Syntax.html#ifaxbRHS"><span class="hs-identifier hs-var">ifaxbRHS</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681089163"><span class="hs-identifier hs-var">rhs</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-593"></span><span>
</span><span id="line-594"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceIdInfo"><span class="hs-identifier hs-type">rnIfaceIdInfo</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#Rename"><span class="hs-identifier hs-type">Rename</span></a></span><span> </span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceIdInfo"><span class="hs-identifier hs-type">IfaceIdInfo</span></a></span><span>
</span><span id="line-595"></span><span id="rnIfaceIdInfo"><span class="annot"><span class="annottext">rnIfaceIdInfo :: Rename IfaceIdInfo
</span><a href="GHC.Iface.Rename.html#rnIfaceIdInfo"><span class="hs-identifier hs-var hs-var">rnIfaceIdInfo</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(IfaceInfoItem -&gt; IOEnv (Env ShIfEnv ()) IfaceInfoItem)
-&gt; Rename IfaceIdInfo
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceInfoItem -&gt; IOEnv (Env ShIfEnv ()) IfaceInfoItem
</span><a href="GHC.Iface.Rename.html#rnIfaceInfoItem"><span class="hs-identifier hs-var">rnIfaceInfoItem</span></a></span><span>
</span><span id="line-596"></span><span>
</span><span id="line-597"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceInfoItem"><span class="hs-identifier hs-type">rnIfaceInfoItem</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#Rename"><span class="hs-identifier hs-type">Rename</span></a></span><span> </span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceInfoItem"><span class="hs-identifier hs-type">IfaceInfoItem</span></a></span><span>
</span><span id="line-598"></span><span id="rnIfaceInfoItem"><span class="annot"><span class="annottext">rnIfaceInfoItem :: IfaceInfoItem -&gt; IOEnv (Env ShIfEnv ()) IfaceInfoItem
</span><a href="GHC.Iface.Rename.html#rnIfaceInfoItem"><span class="hs-identifier hs-var hs-var">rnIfaceInfoItem</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Syntax.html#HsUnfold"><span class="hs-identifier hs-type">HsUnfold</span></a></span><span> </span><span id="local-6989586621681089159"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681089159"><span class="hs-identifier hs-var">lb</span></a></span></span><span> </span><span id="local-6989586621681089158"><span class="annot"><span class="annottext">IfaceUnfolding
</span><a href="#local-6989586621681089158"><span class="hs-identifier hs-var">if_unf</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-599"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; IfaceUnfolding -&gt; IfaceInfoItem
</span><a href="GHC.Iface.Syntax.html#HsUnfold"><span class="hs-identifier hs-var">HsUnfold</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681089159"><span class="hs-identifier hs-var">lb</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceUnfolding -&gt; IfaceInfoItem)
-&gt; IOEnv (Env ShIfEnv ()) IfaceUnfolding
-&gt; IOEnv (Env ShIfEnv ()) IfaceInfoItem
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceUnfolding
</span><a href="GHC.Iface.Rename.html#rnIfaceUnfolding"><span class="hs-identifier hs-var">rnIfaceUnfolding</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceUnfolding
</span><a href="#local-6989586621681089158"><span class="hs-identifier hs-var">if_unf</span></a></span><span>
</span><span id="line-600"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceInfoItem"><span class="hs-identifier hs-var">rnIfaceInfoItem</span></a></span><span> </span><span id="local-6989586621681089156"><span class="annot"><span class="annottext">IfaceInfoItem
</span><a href="#local-6989586621681089156"><span class="hs-identifier hs-var">i</span></a></span></span><span>
</span><span id="line-601"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceInfoItem -&gt; IOEnv (Env ShIfEnv ()) IfaceInfoItem
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceInfoItem
</span><a href="#local-6989586621681089156"><span class="hs-identifier hs-var">i</span></a></span><span>
</span><span id="line-602"></span><span>
</span><span id="line-603"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceUnfolding"><span class="hs-identifier hs-type">rnIfaceUnfolding</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#Rename"><span class="hs-identifier hs-type">Rename</span></a></span><span> </span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceUnfolding"><span class="hs-identifier hs-type">IfaceUnfolding</span></a></span><span>
</span><span id="line-604"></span><span id="rnIfaceUnfolding"><span class="annot"><span class="annottext">rnIfaceUnfolding :: Rename IfaceUnfolding
</span><a href="GHC.Iface.Rename.html#rnIfaceUnfolding"><span class="hs-identifier hs-var hs-var">rnIfaceUnfolding</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Syntax.html#IfCoreUnfold"><span class="hs-identifier hs-type">IfCoreUnfold</span></a></span><span> </span><span id="local-6989586621681089154"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681089154"><span class="hs-identifier hs-var">stable</span></a></span></span><span> </span><span id="local-6989586621681089153"><span class="annot"><span class="annottext">IfaceExpr
</span><a href="#local-6989586621681089153"><span class="hs-identifier hs-var">if_expr</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-605"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; IfaceExpr -&gt; IfaceUnfolding
</span><a href="GHC.Iface.Syntax.html#IfCoreUnfold"><span class="hs-identifier hs-var">IfCoreUnfold</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681089154"><span class="hs-identifier hs-var">stable</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceExpr -&gt; IfaceUnfolding)
-&gt; IOEnv (Env ShIfEnv ()) IfaceExpr
-&gt; IOEnv (Env ShIfEnv ()) IfaceUnfolding
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceExpr
</span><a href="GHC.Iface.Rename.html#rnIfaceExpr"><span class="hs-identifier hs-var">rnIfaceExpr</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceExpr
</span><a href="#local-6989586621681089153"><span class="hs-identifier hs-var">if_expr</span></a></span><span>
</span><span id="line-606"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceUnfolding"><span class="hs-identifier hs-var">rnIfaceUnfolding</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Syntax.html#IfCompulsory"><span class="hs-identifier hs-type">IfCompulsory</span></a></span><span> </span><span id="local-6989586621681089150"><span class="annot"><span class="annottext">IfaceExpr
</span><a href="#local-6989586621681089150"><span class="hs-identifier hs-var">if_expr</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-607"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceExpr -&gt; IfaceUnfolding
</span><a href="GHC.Iface.Syntax.html#IfCompulsory"><span class="hs-identifier hs-var">IfCompulsory</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceExpr -&gt; IfaceUnfolding)
-&gt; IOEnv (Env ShIfEnv ()) IfaceExpr
-&gt; IOEnv (Env ShIfEnv ()) IfaceUnfolding
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceExpr
</span><a href="GHC.Iface.Rename.html#rnIfaceExpr"><span class="hs-identifier hs-var">rnIfaceExpr</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceExpr
</span><a href="#local-6989586621681089150"><span class="hs-identifier hs-var">if_expr</span></a></span><span>
</span><span id="line-608"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceUnfolding"><span class="hs-identifier hs-var">rnIfaceUnfolding</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Syntax.html#IfInlineRule"><span class="hs-identifier hs-type">IfInlineRule</span></a></span><span> </span><span id="local-6989586621681089148"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681089148"><span class="hs-identifier hs-var">arity</span></a></span></span><span> </span><span id="local-6989586621681089147"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681089147"><span class="hs-identifier hs-var">unsat_ok</span></a></span></span><span> </span><span id="local-6989586621681089146"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681089146"><span class="hs-identifier hs-var">boring_ok</span></a></span></span><span> </span><span id="local-6989586621681089145"><span class="annot"><span class="annottext">IfaceExpr
</span><a href="#local-6989586621681089145"><span class="hs-identifier hs-var">if_expr</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-609"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; Bool -&gt; Bool -&gt; IfaceExpr -&gt; IfaceUnfolding
</span><a href="GHC.Iface.Syntax.html#IfInlineRule"><span class="hs-identifier hs-var">IfInlineRule</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681089148"><span class="hs-identifier hs-var">arity</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681089147"><span class="hs-identifier hs-var">unsat_ok</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681089146"><span class="hs-identifier hs-var">boring_ok</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceExpr -&gt; IfaceUnfolding)
-&gt; IOEnv (Env ShIfEnv ()) IfaceExpr
-&gt; IOEnv (Env ShIfEnv ()) IfaceUnfolding
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceExpr
</span><a href="GHC.Iface.Rename.html#rnIfaceExpr"><span class="hs-identifier hs-var">rnIfaceExpr</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceExpr
</span><a href="#local-6989586621681089145"><span class="hs-identifier hs-var">if_expr</span></a></span><span>
</span><span id="line-610"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceUnfolding"><span class="hs-identifier hs-var">rnIfaceUnfolding</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Syntax.html#IfDFunUnfold"><span class="hs-identifier hs-type">IfDFunUnfold</span></a></span><span> </span><span id="local-6989586621681089143"><span class="annot"><span class="annottext">[IfaceBndr]
</span><a href="#local-6989586621681089143"><span class="hs-identifier hs-var">bs</span></a></span></span><span> </span><span id="local-6989586621681089142"><span class="annot"><span class="annottext">[IfaceExpr]
</span><a href="#local-6989586621681089142"><span class="hs-identifier hs-var">ops</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-611"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[IfaceBndr] -&gt; [IfaceExpr] -&gt; IfaceUnfolding
</span><a href="GHC.Iface.Syntax.html#IfDFunUnfold"><span class="hs-identifier hs-var">IfDFunUnfold</span></a></span><span> </span><span class="annot"><span class="annottext">([IfaceBndr] -&gt; [IfaceExpr] -&gt; IfaceUnfolding)
-&gt; IOEnv (Env ShIfEnv ()) [IfaceBndr]
-&gt; IOEnv (Env ShIfEnv ()) ([IfaceExpr] -&gt; IfaceUnfolding)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[IfaceBndr] -&gt; IOEnv (Env ShIfEnv ()) [IfaceBndr]
</span><a href="GHC.Iface.Rename.html#rnIfaceBndrs"><span class="hs-identifier hs-var">rnIfaceBndrs</span></a></span><span> </span><span class="annot"><span class="annottext">[IfaceBndr]
</span><a href="#local-6989586621681089143"><span class="hs-identifier hs-var">bs</span></a></span><span> </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) ([IfaceExpr] -&gt; IfaceUnfolding)
-&gt; IOEnv (Env ShIfEnv ()) [IfaceExpr]
-&gt; IOEnv (Env ShIfEnv ()) IfaceUnfolding
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceExpr
-&gt; [IfaceExpr] -&gt; IOEnv (Env ShIfEnv ()) [IfaceExpr]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceExpr
</span><a href="GHC.Iface.Rename.html#rnIfaceExpr"><span class="hs-identifier hs-var">rnIfaceExpr</span></a></span><span> </span><span class="annot"><span class="annottext">[IfaceExpr]
</span><a href="#local-6989586621681089142"><span class="hs-identifier hs-var">ops</span></a></span><span>
</span><span id="line-612"></span><span>
</span><span id="line-613"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceExpr"><span class="hs-identifier hs-type">rnIfaceExpr</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#Rename"><span class="hs-identifier hs-type">Rename</span></a></span><span> </span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceExpr"><span class="hs-identifier hs-type">IfaceExpr</span></a></span><span>
</span><span id="line-614"></span><span id="rnIfaceExpr"><span class="annot"><span class="annottext">rnIfaceExpr :: Rename IfaceExpr
</span><a href="GHC.Iface.Rename.html#rnIfaceExpr"><span class="hs-identifier hs-var hs-var">rnIfaceExpr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceLcl"><span class="hs-identifier hs-type">IfaceLcl</span></a></span><span> </span><span id="local-6989586621681089139"><span class="annot"><span class="annottext">FieldLabelString
</span><a href="#local-6989586621681089139"><span class="hs-identifier hs-var">name</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Rename IfaceExpr
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">FieldLabelString -&gt; IfaceExpr
</span><a href="GHC.Iface.Syntax.html#IfaceLcl"><span class="hs-identifier hs-var">IfaceLcl</span></a></span><span> </span><span class="annot"><span class="annottext">FieldLabelString
</span><a href="#local-6989586621681089139"><span class="hs-identifier hs-var">name</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-615"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceExpr"><span class="hs-identifier hs-var">rnIfaceExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceExt"><span class="hs-identifier hs-type">IfaceExt</span></a></span><span> </span><span id="local-6989586621681089137"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089137"><span class="hs-identifier hs-var">gbl</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Name -&gt; IfaceExpr
</span><a href="GHC.Iface.Syntax.html#IfaceExt"><span class="hs-identifier hs-var">IfaceExt</span></a></span><span> </span><span class="annot"><span class="annottext">(Name -&gt; IfaceExpr)
-&gt; IOEnv (Env ShIfEnv ()) Name -&gt; IOEnv (Env ShIfEnv ()) IfaceExpr
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; IOEnv (Env ShIfEnv ()) Name
</span><a href="GHC.Iface.Rename.html#rnIfaceGlobal"><span class="hs-identifier hs-var">rnIfaceGlobal</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089137"><span class="hs-identifier hs-var">gbl</span></a></span><span>
</span><span id="line-616"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceExpr"><span class="hs-identifier hs-var">rnIfaceExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceType"><span class="hs-identifier hs-type">IfaceType</span></a></span><span> </span><span id="local-6989586621681089135"><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681089135"><span class="hs-identifier hs-var">ty</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceType -&gt; IfaceExpr
</span><a href="GHC.Iface.Syntax.html#IfaceType"><span class="hs-identifier hs-var">IfaceType</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceType -&gt; IfaceExpr)
-&gt; IOEnv (Env ShIfEnv ()) IfaceType
-&gt; IOEnv (Env ShIfEnv ()) IfaceExpr
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
</span><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681089135"><span class="hs-identifier hs-var">ty</span></a></span><span>
</span><span id="line-617"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceExpr"><span class="hs-identifier hs-var">rnIfaceExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceCo"><span class="hs-identifier hs-type">IfaceCo</span></a></span><span> </span><span id="local-6989586621681089133"><span class="annot"><span class="annottext">IfaceCoercion
</span><a href="#local-6989586621681089133"><span class="hs-identifier hs-var">co</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceCoercion -&gt; IfaceExpr
</span><a href="GHC.Iface.Syntax.html#IfaceCo"><span class="hs-identifier hs-var">IfaceCo</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceCoercion -&gt; IfaceExpr)
-&gt; IOEnv (Env ShIfEnv ()) IfaceCoercion
-&gt; IOEnv (Env ShIfEnv ()) IfaceExpr
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceCoercion
</span><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-var">rnIfaceCo</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceCoercion
</span><a href="#local-6989586621681089133"><span class="hs-identifier hs-var">co</span></a></span><span>
</span><span id="line-618"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceExpr"><span class="hs-identifier hs-var">rnIfaceExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceTuple"><span class="hs-identifier hs-type">IfaceTuple</span></a></span><span> </span><span id="local-6989586621681089131"><span class="annot"><span class="annottext">TupleSort
</span><a href="#local-6989586621681089131"><span class="hs-identifier hs-var">sort</span></a></span></span><span> </span><span id="local-6989586621681089130"><span class="annot"><span class="annottext">[IfaceExpr]
</span><a href="#local-6989586621681089130"><span class="hs-identifier hs-var">args</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">TupleSort -&gt; [IfaceExpr] -&gt; IfaceExpr
</span><a href="GHC.Iface.Syntax.html#IfaceTuple"><span class="hs-identifier hs-var">IfaceTuple</span></a></span><span> </span><span class="annot"><span class="annottext">TupleSort
</span><a href="#local-6989586621681089131"><span class="hs-identifier hs-var">sort</span></a></span><span> </span><span class="annot"><span class="annottext">([IfaceExpr] -&gt; IfaceExpr)
-&gt; IOEnv (Env ShIfEnv ()) [IfaceExpr]
-&gt; IOEnv (Env ShIfEnv ()) IfaceExpr
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[IfaceExpr] -&gt; IOEnv (Env ShIfEnv ()) [IfaceExpr]
</span><a href="GHC.Iface.Rename.html#rnIfaceExprs"><span class="hs-identifier hs-var">rnIfaceExprs</span></a></span><span> </span><span class="annot"><span class="annottext">[IfaceExpr]
</span><a href="#local-6989586621681089130"><span class="hs-identifier hs-var">args</span></a></span><span>
</span><span id="line-619"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceExpr"><span class="hs-identifier hs-var">rnIfaceExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceLam"><span class="hs-identifier hs-type">IfaceLam</span></a></span><span> </span><span id="local-6989586621681089127"><span class="annot"><span class="annottext">IfaceLamBndr
</span><a href="#local-6989586621681089127"><span class="hs-identifier hs-var">lam_bndr</span></a></span></span><span> </span><span id="local-6989586621681089126"><span class="annot"><span class="annottext">IfaceExpr
</span><a href="#local-6989586621681089126"><span class="hs-identifier hs-var">expr</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-620"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceLamBndr -&gt; IfaceExpr -&gt; IfaceExpr
</span><a href="GHC.Iface.Syntax.html#IfaceLam"><span class="hs-identifier hs-var">IfaceLam</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceLamBndr -&gt; IfaceExpr -&gt; IfaceExpr)
-&gt; IOEnv (Env ShIfEnv ()) IfaceLamBndr
-&gt; IOEnv (Env ShIfEnv ()) (IfaceExpr -&gt; IfaceExpr)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceLamBndr
</span><a href="GHC.Iface.Rename.html#rnIfaceLamBndr"><span class="hs-identifier hs-var">rnIfaceLamBndr</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceLamBndr
</span><a href="#local-6989586621681089127"><span class="hs-identifier hs-var">lam_bndr</span></a></span><span> </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) (IfaceExpr -&gt; IfaceExpr)
-&gt; IOEnv (Env ShIfEnv ()) IfaceExpr
-&gt; IOEnv (Env ShIfEnv ()) IfaceExpr
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceExpr
</span><a href="GHC.Iface.Rename.html#rnIfaceExpr"><span class="hs-identifier hs-var">rnIfaceExpr</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceExpr
</span><a href="#local-6989586621681089126"><span class="hs-identifier hs-var">expr</span></a></span><span>
</span><span id="line-621"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceExpr"><span class="hs-identifier hs-var">rnIfaceExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceApp"><span class="hs-identifier hs-type">IfaceApp</span></a></span><span> </span><span id="local-6989586621681089123"><span class="annot"><span class="annottext">IfaceExpr
</span><a href="#local-6989586621681089123"><span class="hs-identifier hs-var">fun</span></a></span></span><span> </span><span id="local-6989586621681089122"><span class="annot"><span class="annottext">IfaceExpr
</span><a href="#local-6989586621681089122"><span class="hs-identifier hs-var">arg</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-622"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceExpr -&gt; IfaceExpr -&gt; IfaceExpr
</span><a href="GHC.Iface.Syntax.html#IfaceApp"><span class="hs-identifier hs-var">IfaceApp</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceExpr -&gt; IfaceExpr -&gt; IfaceExpr)
-&gt; IOEnv (Env ShIfEnv ()) IfaceExpr
-&gt; IOEnv (Env ShIfEnv ()) (IfaceExpr -&gt; IfaceExpr)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceExpr
</span><a href="GHC.Iface.Rename.html#rnIfaceExpr"><span class="hs-identifier hs-var">rnIfaceExpr</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceExpr
</span><a href="#local-6989586621681089123"><span class="hs-identifier hs-var">fun</span></a></span><span> </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) (IfaceExpr -&gt; IfaceExpr)
-&gt; IOEnv (Env ShIfEnv ()) IfaceExpr
-&gt; IOEnv (Env ShIfEnv ()) IfaceExpr
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceExpr
</span><a href="GHC.Iface.Rename.html#rnIfaceExpr"><span class="hs-identifier hs-var">rnIfaceExpr</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceExpr
</span><a href="#local-6989586621681089122"><span class="hs-identifier hs-var">arg</span></a></span><span>
</span><span id="line-623"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceExpr"><span class="hs-identifier hs-var">rnIfaceExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceCase"><span class="hs-identifier hs-type">IfaceCase</span></a></span><span> </span><span id="local-6989586621681089120"><span class="annot"><span class="annottext">IfaceExpr
</span><a href="#local-6989586621681089120"><span class="hs-identifier hs-var">scrut</span></a></span></span><span> </span><span id="local-6989586621681089119"><span class="annot"><span class="annottext">FieldLabelString
</span><a href="#local-6989586621681089119"><span class="hs-identifier hs-var">case_bndr</span></a></span></span><span> </span><span id="local-6989586621681089118"><span class="annot"><span class="annottext">[IfaceAlt]
</span><a href="#local-6989586621681089118"><span class="hs-identifier hs-var">alts</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-624"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceExpr -&gt; FieldLabelString -&gt; [IfaceAlt] -&gt; IfaceExpr
</span><a href="GHC.Iface.Syntax.html#IfaceCase"><span class="hs-identifier hs-var">IfaceCase</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceExpr -&gt; FieldLabelString -&gt; [IfaceAlt] -&gt; IfaceExpr)
-&gt; IOEnv (Env ShIfEnv ()) IfaceExpr
-&gt; IOEnv
     (Env ShIfEnv ()) (FieldLabelString -&gt; [IfaceAlt] -&gt; IfaceExpr)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceExpr
</span><a href="GHC.Iface.Rename.html#rnIfaceExpr"><span class="hs-identifier hs-var">rnIfaceExpr</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceExpr
</span><a href="#local-6989586621681089120"><span class="hs-identifier hs-var">scrut</span></a></span><span>
</span><span id="line-625"></span><span>                </span><span class="annot"><span class="annottext">IOEnv
  (Env ShIfEnv ()) (FieldLabelString -&gt; [IfaceAlt] -&gt; IfaceExpr)
-&gt; IOEnv (Env ShIfEnv ()) FieldLabelString
-&gt; IOEnv (Env ShIfEnv ()) ([IfaceAlt] -&gt; IfaceExpr)
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">FieldLabelString -&gt; IOEnv (Env ShIfEnv ()) FieldLabelString
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="annot"><span class="annottext">FieldLabelString
</span><a href="#local-6989586621681089119"><span class="hs-identifier hs-var">case_bndr</span></a></span><span>
</span><span id="line-626"></span><span>                </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) ([IfaceAlt] -&gt; IfaceExpr)
-&gt; IOEnv (Env ShIfEnv ()) [IfaceAlt]
-&gt; IOEnv (Env ShIfEnv ()) IfaceExpr
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceAlt -&gt; IOEnv (Env ShIfEnv ()) IfaceAlt)
-&gt; [IfaceAlt] -&gt; IOEnv (Env ShIfEnv ()) [IfaceAlt]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceAlt -&gt; IOEnv (Env ShIfEnv ()) IfaceAlt
</span><a href="GHC.Iface.Rename.html#rnIfaceAlt"><span class="hs-identifier hs-var">rnIfaceAlt</span></a></span><span> </span><span class="annot"><span class="annottext">[IfaceAlt]
</span><a href="#local-6989586621681089118"><span class="hs-identifier hs-var">alts</span></a></span><span>
</span><span id="line-627"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceExpr"><span class="hs-identifier hs-var">rnIfaceExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceECase"><span class="hs-identifier hs-type">IfaceECase</span></a></span><span> </span><span id="local-6989586621681089115"><span class="annot"><span class="annottext">IfaceExpr
</span><a href="#local-6989586621681089115"><span class="hs-identifier hs-var">scrut</span></a></span></span><span> </span><span id="local-6989586621681089114"><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681089114"><span class="hs-identifier hs-var">ty</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-628"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceExpr -&gt; IfaceType -&gt; IfaceExpr
</span><a href="GHC.Iface.Syntax.html#IfaceECase"><span class="hs-identifier hs-var">IfaceECase</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceExpr -&gt; IfaceType -&gt; IfaceExpr)
-&gt; IOEnv (Env ShIfEnv ()) IfaceExpr
-&gt; IOEnv (Env ShIfEnv ()) (IfaceType -&gt; IfaceExpr)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceExpr
</span><a href="GHC.Iface.Rename.html#rnIfaceExpr"><span class="hs-identifier hs-var">rnIfaceExpr</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceExpr
</span><a href="#local-6989586621681089115"><span class="hs-identifier hs-var">scrut</span></a></span><span> </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) (IfaceType -&gt; IfaceExpr)
-&gt; IOEnv (Env ShIfEnv ()) IfaceType
-&gt; IOEnv (Env ShIfEnv ()) IfaceExpr
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
</span><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681089114"><span class="hs-identifier hs-var">ty</span></a></span><span>
</span><span id="line-629"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceExpr"><span class="hs-identifier hs-var">rnIfaceExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceLet"><span class="hs-identifier hs-type">IfaceLet</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceNonRec"><span class="hs-identifier hs-type">IfaceNonRec</span></a></span><span> </span><span id="local-6989586621681089111"><span class="annot"><span class="annottext">IfaceLetBndr
</span><a href="#local-6989586621681089111"><span class="hs-identifier hs-var">bndr</span></a></span></span><span> </span><span id="local-6989586621681089110"><span class="annot"><span class="annottext">IfaceExpr
</span><a href="#local-6989586621681089110"><span class="hs-identifier hs-var">rhs</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621681089109"><span class="annot"><span class="annottext">IfaceExpr
</span><a href="#local-6989586621681089109"><span class="hs-identifier hs-var">body</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-630"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceBinding -&gt; IfaceExpr -&gt; IfaceExpr
</span><a href="GHC.Iface.Syntax.html#IfaceLet"><span class="hs-identifier hs-var">IfaceLet</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceBinding -&gt; IfaceExpr -&gt; IfaceExpr)
-&gt; IOEnv (Env ShIfEnv ()) IfaceBinding
-&gt; IOEnv (Env ShIfEnv ()) (IfaceExpr -&gt; IfaceExpr)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceLetBndr -&gt; IfaceExpr -&gt; IfaceBinding
</span><a href="GHC.Iface.Syntax.html#IfaceNonRec"><span class="hs-identifier hs-var">IfaceNonRec</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceLetBndr -&gt; IfaceExpr -&gt; IfaceBinding)
-&gt; IOEnv (Env ShIfEnv ()) IfaceLetBndr
-&gt; IOEnv (Env ShIfEnv ()) (IfaceExpr -&gt; IfaceBinding)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceLetBndr
</span><a href="GHC.Iface.Rename.html#rnIfaceLetBndr"><span class="hs-identifier hs-var">rnIfaceLetBndr</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceLetBndr
</span><a href="#local-6989586621681089111"><span class="hs-identifier hs-var">bndr</span></a></span><span> </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) (IfaceExpr -&gt; IfaceBinding)
-&gt; IOEnv (Env ShIfEnv ()) IfaceExpr
-&gt; IOEnv (Env ShIfEnv ()) IfaceBinding
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceExpr
</span><a href="GHC.Iface.Rename.html#rnIfaceExpr"><span class="hs-identifier hs-var">rnIfaceExpr</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceExpr
</span><a href="#local-6989586621681089110"><span class="hs-identifier hs-var">rhs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-631"></span><span>               </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) (IfaceExpr -&gt; IfaceExpr)
-&gt; IOEnv (Env ShIfEnv ()) IfaceExpr
-&gt; IOEnv (Env ShIfEnv ()) IfaceExpr
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceExpr
</span><a href="GHC.Iface.Rename.html#rnIfaceExpr"><span class="hs-identifier hs-var">rnIfaceExpr</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceExpr
</span><a href="#local-6989586621681089109"><span class="hs-identifier hs-var">body</span></a></span><span>
</span><span id="line-632"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceExpr"><span class="hs-identifier hs-var">rnIfaceExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceLet"><span class="hs-identifier hs-type">IfaceLet</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceRec"><span class="hs-identifier hs-type">IfaceRec</span></a></span><span> </span><span id="local-6989586621681089106"><span class="annot"><span class="annottext">[(IfaceLetBndr, IfaceExpr)]
</span><a href="#local-6989586621681089106"><span class="hs-identifier hs-var">pairs</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621681089105"><span class="annot"><span class="annottext">IfaceExpr
</span><a href="#local-6989586621681089105"><span class="hs-identifier hs-var">body</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-633"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceBinding -&gt; IfaceExpr -&gt; IfaceExpr
</span><a href="GHC.Iface.Syntax.html#IfaceLet"><span class="hs-identifier hs-var">IfaceLet</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceBinding -&gt; IfaceExpr -&gt; IfaceExpr)
-&gt; IOEnv (Env ShIfEnv ()) IfaceBinding
-&gt; IOEnv (Env ShIfEnv ()) (IfaceExpr -&gt; IfaceExpr)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[(IfaceLetBndr, IfaceExpr)] -&gt; IfaceBinding
</span><a href="GHC.Iface.Syntax.html#IfaceRec"><span class="hs-identifier hs-var">IfaceRec</span></a></span><span> </span><span class="annot"><span class="annottext">([(IfaceLetBndr, IfaceExpr)] -&gt; IfaceBinding)
-&gt; IOEnv (Env ShIfEnv ()) [(IfaceLetBndr, IfaceExpr)]
-&gt; IOEnv (Env ShIfEnv ()) IfaceBinding
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">((IfaceLetBndr, IfaceExpr)
 -&gt; IOEnv (Env ShIfEnv ()) (IfaceLetBndr, IfaceExpr))
-&gt; [(IfaceLetBndr, IfaceExpr)]
-&gt; IOEnv (Env ShIfEnv ()) [(IfaceLetBndr, IfaceExpr)]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span class="hs-special">(</span><span id="local-6989586621681089104"><span class="annot"><span class="annottext">IfaceLetBndr
</span><a href="#local-6989586621681089104"><span class="hs-identifier hs-var">bndr</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621681089103"><span class="annot"><span class="annottext">IfaceExpr
</span><a href="#local-6989586621681089103"><span class="hs-identifier hs-var">rhs</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-634"></span><span>                                        </span><span class="hs-special">(</span><span class="hs-special">,</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(IfaceLetBndr -&gt; IfaceExpr -&gt; (IfaceLetBndr, IfaceExpr))
-&gt; IOEnv (Env ShIfEnv ()) IfaceLetBndr
-&gt; IOEnv (Env ShIfEnv ()) (IfaceExpr -&gt; (IfaceLetBndr, IfaceExpr))
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceLetBndr
</span><a href="GHC.Iface.Rename.html#rnIfaceLetBndr"><span class="hs-identifier hs-var">rnIfaceLetBndr</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceLetBndr
</span><a href="#local-6989586621681089104"><span class="hs-identifier hs-var">bndr</span></a></span><span>
</span><span id="line-635"></span><span>                                            </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) (IfaceExpr -&gt; (IfaceLetBndr, IfaceExpr))
-&gt; IOEnv (Env ShIfEnv ()) IfaceExpr
-&gt; IOEnv (Env ShIfEnv ()) (IfaceLetBndr, IfaceExpr)
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceExpr
</span><a href="GHC.Iface.Rename.html#rnIfaceExpr"><span class="hs-identifier hs-var">rnIfaceExpr</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceExpr
</span><a href="#local-6989586621681089103"><span class="hs-identifier hs-var">rhs</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[(IfaceLetBndr, IfaceExpr)]
</span><a href="#local-6989586621681089106"><span class="hs-identifier hs-var">pairs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-636"></span><span>               </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) (IfaceExpr -&gt; IfaceExpr)
-&gt; IOEnv (Env ShIfEnv ()) IfaceExpr
-&gt; IOEnv (Env ShIfEnv ()) IfaceExpr
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceExpr
</span><a href="GHC.Iface.Rename.html#rnIfaceExpr"><span class="hs-identifier hs-var">rnIfaceExpr</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceExpr
</span><a href="#local-6989586621681089105"><span class="hs-identifier hs-var">body</span></a></span><span>
</span><span id="line-637"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceExpr"><span class="hs-identifier hs-var">rnIfaceExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceCast"><span class="hs-identifier hs-type">IfaceCast</span></a></span><span> </span><span id="local-6989586621681089101"><span class="annot"><span class="annottext">IfaceExpr
</span><a href="#local-6989586621681089101"><span class="hs-identifier hs-var">expr</span></a></span></span><span> </span><span id="local-6989586621681089100"><span class="annot"><span class="annottext">IfaceCoercion
</span><a href="#local-6989586621681089100"><span class="hs-identifier hs-var">co</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-638"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceExpr -&gt; IfaceCoercion -&gt; IfaceExpr
</span><a href="GHC.Iface.Syntax.html#IfaceCast"><span class="hs-identifier hs-var">IfaceCast</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceExpr -&gt; IfaceCoercion -&gt; IfaceExpr)
-&gt; IOEnv (Env ShIfEnv ()) IfaceExpr
-&gt; IOEnv (Env ShIfEnv ()) (IfaceCoercion -&gt; IfaceExpr)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceExpr
</span><a href="GHC.Iface.Rename.html#rnIfaceExpr"><span class="hs-identifier hs-var">rnIfaceExpr</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceExpr
</span><a href="#local-6989586621681089101"><span class="hs-identifier hs-var">expr</span></a></span><span> </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) (IfaceCoercion -&gt; IfaceExpr)
-&gt; IOEnv (Env ShIfEnv ()) IfaceCoercion
-&gt; IOEnv (Env ShIfEnv ()) IfaceExpr
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceCoercion
</span><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-var">rnIfaceCo</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceCoercion
</span><a href="#local-6989586621681089100"><span class="hs-identifier hs-var">co</span></a></span><span>
</span><span id="line-639"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceExpr"><span class="hs-identifier hs-var">rnIfaceExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceLit"><span class="hs-identifier hs-type">IfaceLit</span></a></span><span> </span><span id="local-6989586621681089098"><span class="annot"><span class="annottext">Literal
</span><a href="#local-6989586621681089098"><span class="hs-identifier hs-var">lit</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Rename IfaceExpr
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Literal -&gt; IfaceExpr
</span><a href="GHC.Iface.Syntax.html#IfaceLit"><span class="hs-identifier hs-var">IfaceLit</span></a></span><span> </span><span class="annot"><span class="annottext">Literal
</span><a href="#local-6989586621681089098"><span class="hs-identifier hs-var">lit</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-640"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceExpr"><span class="hs-identifier hs-var">rnIfaceExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceFCall"><span class="hs-identifier hs-type">IfaceFCall</span></a></span><span> </span><span id="local-6989586621681089096"><span class="annot"><span class="annottext">ForeignCall
</span><a href="#local-6989586621681089096"><span class="hs-identifier hs-var">cc</span></a></span></span><span> </span><span id="local-6989586621681089095"><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681089095"><span class="hs-identifier hs-var">ty</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ForeignCall -&gt; IfaceType -&gt; IfaceExpr
</span><a href="GHC.Iface.Syntax.html#IfaceFCall"><span class="hs-identifier hs-var">IfaceFCall</span></a></span><span> </span><span class="annot"><span class="annottext">ForeignCall
</span><a href="#local-6989586621681089096"><span class="hs-identifier hs-var">cc</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceType -&gt; IfaceExpr)
-&gt; IOEnv (Env ShIfEnv ()) IfaceType
-&gt; IOEnv (Env ShIfEnv ()) IfaceExpr
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
</span><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681089095"><span class="hs-identifier hs-var">ty</span></a></span><span>
</span><span id="line-641"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceExpr"><span class="hs-identifier hs-var">rnIfaceExpr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceTick"><span class="hs-identifier hs-type">IfaceTick</span></a></span><span> </span><span id="local-6989586621681089093"><span class="annot"><span class="annottext">IfaceTickish
</span><a href="#local-6989586621681089093"><span class="hs-identifier hs-var">tickish</span></a></span></span><span> </span><span id="local-6989586621681089092"><span class="annot"><span class="annottext">IfaceExpr
</span><a href="#local-6989586621681089092"><span class="hs-identifier hs-var">expr</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceTickish -&gt; IfaceExpr -&gt; IfaceExpr
</span><a href="GHC.Iface.Syntax.html#IfaceTick"><span class="hs-identifier hs-var">IfaceTick</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceTickish
</span><a href="#local-6989586621681089093"><span class="hs-identifier hs-var">tickish</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceExpr -&gt; IfaceExpr)
-&gt; IOEnv (Env ShIfEnv ()) IfaceExpr
-&gt; IOEnv (Env ShIfEnv ()) IfaceExpr
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceExpr
</span><a href="GHC.Iface.Rename.html#rnIfaceExpr"><span class="hs-identifier hs-var">rnIfaceExpr</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceExpr
</span><a href="#local-6989586621681089092"><span class="hs-identifier hs-var">expr</span></a></span><span>
</span><span id="line-642"></span><span>
</span><span id="line-643"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceBndrs"><span class="hs-identifier hs-type">rnIfaceBndrs</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#Rename"><span class="hs-identifier hs-type">Rename</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Iface.Type.html#IfaceBndr"><span class="hs-identifier hs-type">IfaceBndr</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-644"></span><span id="rnIfaceBndrs"><span class="annot"><span class="annottext">rnIfaceBndrs :: [IfaceBndr] -&gt; IOEnv (Env ShIfEnv ()) [IfaceBndr]
</span><a href="GHC.Iface.Rename.html#rnIfaceBndrs"><span class="hs-identifier hs-var hs-var">rnIfaceBndrs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(IfaceBndr -&gt; IOEnv (Env ShIfEnv ()) IfaceBndr)
-&gt; [IfaceBndr] -&gt; IOEnv (Env ShIfEnv ()) [IfaceBndr]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceBndr -&gt; IOEnv (Env ShIfEnv ()) IfaceBndr
</span><a href="GHC.Iface.Rename.html#rnIfaceBndr"><span class="hs-identifier hs-var">rnIfaceBndr</span></a></span><span>
</span><span id="line-645"></span><span>
</span><span id="line-646"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceBndr"><span class="hs-identifier hs-type">rnIfaceBndr</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#Rename"><span class="hs-identifier hs-type">Rename</span></a></span><span> </span><span class="annot"><a href="GHC.Iface.Type.html#IfaceBndr"><span class="hs-identifier hs-type">IfaceBndr</span></a></span><span>
</span><span id="line-647"></span><span id="rnIfaceBndr"><span class="annot"><span class="annottext">rnIfaceBndr :: IfaceBndr -&gt; IOEnv (Env ShIfEnv ()) IfaceBndr
</span><a href="GHC.Iface.Rename.html#rnIfaceBndr"><span class="hs-identifier hs-var hs-var">rnIfaceBndr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Type.html#IfaceIdBndr"><span class="hs-identifier hs-type">IfaceIdBndr</span></a></span><span> </span><span class="hs-special">(</span><span id="local-6989586621681089090"><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681089090"><span class="hs-identifier hs-var">w</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621681089089"><span class="annot"><span class="annottext">FieldLabelString
</span><a href="#local-6989586621681089089"><span class="hs-identifier hs-var">fs</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621681089088"><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681089088"><span class="hs-identifier hs-var">ty</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(IfaceType, FieldLabelString, IfaceType) -&gt; IfaceBndr
</span><a href="GHC.Iface.Type.html#IfaceIdBndr"><span class="hs-identifier hs-var">IfaceIdBndr</span></a></span><span> </span><span class="annot"><span class="annottext">((IfaceType, FieldLabelString, IfaceType) -&gt; IfaceBndr)
-&gt; IOEnv (Env ShIfEnv ()) (IfaceType, FieldLabelString, IfaceType)
-&gt; IOEnv (Env ShIfEnv ()) IfaceBndr
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">(</span><span class="hs-special">,</span><span class="hs-special">,</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681089090"><span class="hs-identifier hs-var">w</span></a></span><span> </span><span class="annot"><span class="annottext">FieldLabelString
</span><a href="#local-6989586621681089089"><span class="hs-identifier hs-var">fs</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceType -&gt; (IfaceType, FieldLabelString, IfaceType))
-&gt; IOEnv (Env ShIfEnv ()) IfaceType
-&gt; IOEnv (Env ShIfEnv ()) (IfaceType, FieldLabelString, IfaceType)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
</span><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681089088"><span class="hs-identifier hs-var">ty</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-648"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceBndr"><span class="hs-identifier hs-var">rnIfaceBndr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Type.html#IfaceTvBndr"><span class="hs-identifier hs-type">IfaceTvBndr</span></a></span><span> </span><span id="local-6989586621681089086"><span class="annot"><span class="annottext">(FieldLabelString, IfaceType)
</span><a href="#local-6989586621681089086"><span class="hs-identifier hs-var">tv_bndr</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(FieldLabelString, IfaceType) -&gt; IfaceBndr
</span><a href="GHC.Iface.Type.html#IfaceTvBndr"><span class="hs-identifier hs-var">IfaceTvBndr</span></a></span><span> </span><span class="annot"><span class="annottext">((FieldLabelString, IfaceType) -&gt; IfaceBndr)
-&gt; IOEnv (Env ShIfEnv ()) (FieldLabelString, IfaceType)
-&gt; IOEnv (Env ShIfEnv ()) IfaceBndr
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">(FieldLabelString, IfaceType)
-&gt; IOEnv (Env ShIfEnv ()) (FieldLabelString, IfaceType)
</span><a href="GHC.Iface.Rename.html#rnIfaceTvBndr"><span class="hs-identifier hs-var">rnIfaceTvBndr</span></a></span><span> </span><span class="annot"><span class="annottext">(FieldLabelString, IfaceType)
</span><a href="#local-6989586621681089086"><span class="hs-identifier hs-var">tv_bndr</span></a></span><span>
</span><span id="line-649"></span><span>
</span><span id="line-650"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceTvBndr"><span class="hs-identifier hs-type">rnIfaceTvBndr</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#Rename"><span class="hs-identifier hs-type">Rename</span></a></span><span> </span><span class="annot"><a href="GHC.Iface.Type.html#IfaceTvBndr"><span class="hs-identifier hs-type">IfaceTvBndr</span></a></span><span>
</span><span id="line-651"></span><span id="rnIfaceTvBndr"><span class="annot"><span class="annottext">rnIfaceTvBndr :: (FieldLabelString, IfaceType)
-&gt; IOEnv (Env ShIfEnv ()) (FieldLabelString, IfaceType)
</span><a href="GHC.Iface.Rename.html#rnIfaceTvBndr"><span class="hs-identifier hs-var hs-var">rnIfaceTvBndr</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621681089084"><span class="annot"><span class="annottext">FieldLabelString
</span><a href="#local-6989586621681089084"><span class="hs-identifier hs-var">fs</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621681089083"><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681089083"><span class="hs-identifier hs-var">kind</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="hs-special">,</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">FieldLabelString
</span><a href="#local-6989586621681089084"><span class="hs-identifier hs-var">fs</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceType -&gt; (FieldLabelString, IfaceType))
-&gt; IOEnv (Env ShIfEnv ()) IfaceType
-&gt; IOEnv (Env ShIfEnv ()) (FieldLabelString, IfaceType)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
</span><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681089083"><span class="hs-identifier hs-var">kind</span></a></span><span>
</span><span id="line-652"></span><span>
</span><span id="line-653"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceTyConBinder"><span class="hs-identifier hs-type">rnIfaceTyConBinder</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#Rename"><span class="hs-identifier hs-type">Rename</span></a></span><span> </span><span class="annot"><a href="GHC.Iface.Type.html#IfaceTyConBinder"><span class="hs-identifier hs-type">IfaceTyConBinder</span></a></span><span>
</span><span id="line-654"></span><span id="rnIfaceTyConBinder"><span class="annot"><span class="annottext">rnIfaceTyConBinder :: IfaceTyConBinder -&gt; IOEnv (Env ShIfEnv ()) IfaceTyConBinder
</span><a href="GHC.Iface.Rename.html#rnIfaceTyConBinder"><span class="hs-identifier hs-var hs-var">rnIfaceTyConBinder</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Var.html#Bndr"><span class="hs-identifier hs-type">Bndr</span></a></span><span> </span><span id="local-6989586621681089081"><span class="annot"><span class="annottext">IfaceBndr
</span><a href="#local-6989586621681089081"><span class="hs-identifier hs-var">tv</span></a></span></span><span> </span><span id="local-6989586621681089080"><span class="annot"><span class="annottext">TyConBndrVis
</span><a href="#local-6989586621681089080"><span class="hs-identifier hs-var">vis</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceBndr -&gt; TyConBndrVis -&gt; IfaceTyConBinder
forall var argf. var -&gt; argf -&gt; VarBndr var argf
</span><a href="GHC.Types.Var.html#Bndr"><span class="hs-identifier hs-var">Bndr</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceBndr -&gt; TyConBndrVis -&gt; IfaceTyConBinder)
-&gt; IOEnv (Env ShIfEnv ()) IfaceBndr
-&gt; IOEnv (Env ShIfEnv ()) (TyConBndrVis -&gt; IfaceTyConBinder)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceBndr -&gt; IOEnv (Env ShIfEnv ()) IfaceBndr
</span><a href="GHC.Iface.Rename.html#rnIfaceBndr"><span class="hs-identifier hs-var">rnIfaceBndr</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceBndr
</span><a href="#local-6989586621681089081"><span class="hs-identifier hs-var">tv</span></a></span><span> </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) (TyConBndrVis -&gt; IfaceTyConBinder)
-&gt; IOEnv (Env ShIfEnv ()) TyConBndrVis
-&gt; IOEnv (Env ShIfEnv ()) IfaceTyConBinder
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">TyConBndrVis -&gt; IOEnv (Env ShIfEnv ()) TyConBndrVis
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="annot"><span class="annottext">TyConBndrVis
</span><a href="#local-6989586621681089080"><span class="hs-identifier hs-var">vis</span></a></span><span>
</span><span id="line-655"></span><span>
</span><span id="line-656"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceAlt"><span class="hs-identifier hs-type">rnIfaceAlt</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#Rename"><span class="hs-identifier hs-type">Rename</span></a></span><span> </span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceAlt"><span class="hs-identifier hs-type">IfaceAlt</span></a></span><span>
</span><span id="line-657"></span><span id="rnIfaceAlt"><span class="annot"><span class="annottext">rnIfaceAlt :: IfaceAlt -&gt; IOEnv (Env ShIfEnv ()) IfaceAlt
</span><a href="GHC.Iface.Rename.html#rnIfaceAlt"><span class="hs-identifier hs-var hs-var">rnIfaceAlt</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621681089079"><span class="annot"><span class="annottext">IfaceConAlt
</span><a href="#local-6989586621681089079"><span class="hs-identifier hs-var">conalt</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621681089078"><span class="annot"><span class="annottext">[FieldLabelString]
</span><a href="#local-6989586621681089078"><span class="hs-identifier hs-var">names</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621681089077"><span class="annot"><span class="annottext">IfaceExpr
</span><a href="#local-6989586621681089077"><span class="hs-identifier hs-var">rhs</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-658"></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="hs-special">,</span><span class="hs-special">,</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(IfaceConAlt -&gt; [FieldLabelString] -&gt; IfaceExpr -&gt; IfaceAlt)
-&gt; IOEnv (Env ShIfEnv ()) IfaceConAlt
-&gt; IOEnv
     (Env ShIfEnv ()) ([FieldLabelString] -&gt; IfaceExpr -&gt; IfaceAlt)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceConAlt
</span><a href="GHC.Iface.Rename.html#rnIfaceConAlt"><span class="hs-identifier hs-var">rnIfaceConAlt</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceConAlt
</span><a href="#local-6989586621681089079"><span class="hs-identifier hs-var">conalt</span></a></span><span> </span><span class="annot"><span class="annottext">IOEnv
  (Env ShIfEnv ()) ([FieldLabelString] -&gt; IfaceExpr -&gt; IfaceAlt)
-&gt; IOEnv (Env ShIfEnv ()) [FieldLabelString]
-&gt; IOEnv (Env ShIfEnv ()) (IfaceExpr -&gt; IfaceAlt)
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[FieldLabelString] -&gt; IOEnv (Env ShIfEnv ()) [FieldLabelString]
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="annot"><span class="annottext">[FieldLabelString]
</span><a href="#local-6989586621681089078"><span class="hs-identifier hs-var">names</span></a></span><span> </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) (IfaceExpr -&gt; IfaceAlt)
-&gt; IOEnv (Env ShIfEnv ()) IfaceExpr
-&gt; IOEnv (Env ShIfEnv ()) IfaceAlt
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceExpr
</span><a href="GHC.Iface.Rename.html#rnIfaceExpr"><span class="hs-identifier hs-var">rnIfaceExpr</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceExpr
</span><a href="#local-6989586621681089077"><span class="hs-identifier hs-var">rhs</span></a></span><span>
</span><span id="line-659"></span><span>
</span><span id="line-660"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceConAlt"><span class="hs-identifier hs-type">rnIfaceConAlt</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#Rename"><span class="hs-identifier hs-type">Rename</span></a></span><span> </span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceConAlt"><span class="hs-identifier hs-type">IfaceConAlt</span></a></span><span>
</span><span id="line-661"></span><span id="rnIfaceConAlt"><span class="annot"><span class="annottext">rnIfaceConAlt :: Rename IfaceConAlt
</span><a href="GHC.Iface.Rename.html#rnIfaceConAlt"><span class="hs-identifier hs-var hs-var">rnIfaceConAlt</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceDataAlt"><span class="hs-identifier hs-type">IfaceDataAlt</span></a></span><span> </span><span id="local-6989586621681089074"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089074"><span class="hs-identifier hs-var">data_occ</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Name -&gt; IfaceConAlt
</span><a href="GHC.Iface.Syntax.html#IfaceDataAlt"><span class="hs-identifier hs-var">IfaceDataAlt</span></a></span><span> </span><span class="annot"><span class="annottext">(Name -&gt; IfaceConAlt)
-&gt; IOEnv (Env ShIfEnv ()) Name
-&gt; IOEnv (Env ShIfEnv ()) IfaceConAlt
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; IOEnv (Env ShIfEnv ()) Name
</span><a href="GHC.Iface.Rename.html#rnIfaceGlobal"><span class="hs-identifier hs-var">rnIfaceGlobal</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089074"><span class="hs-identifier hs-var">data_occ</span></a></span><span>
</span><span id="line-662"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceConAlt"><span class="hs-identifier hs-var">rnIfaceConAlt</span></a></span><span> </span><span id="local-6989586621681089073"><span class="annot"><span class="annottext">IfaceConAlt
</span><a href="#local-6989586621681089073"><span class="hs-identifier hs-var">alt</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Rename IfaceConAlt
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceConAlt
</span><a href="#local-6989586621681089073"><span class="hs-identifier hs-var">alt</span></a></span><span>
</span><span id="line-663"></span><span>
</span><span id="line-664"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceLetBndr"><span class="hs-identifier hs-type">rnIfaceLetBndr</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#Rename"><span class="hs-identifier hs-type">Rename</span></a></span><span> </span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceLetBndr"><span class="hs-identifier hs-type">IfaceLetBndr</span></a></span><span>
</span><span id="line-665"></span><span id="rnIfaceLetBndr"><span class="annot"><span class="annottext">rnIfaceLetBndr :: Rename IfaceLetBndr
</span><a href="GHC.Iface.Rename.html#rnIfaceLetBndr"><span class="hs-identifier hs-var hs-var">rnIfaceLetBndr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Syntax.html#IfLetBndr"><span class="hs-identifier hs-type">IfLetBndr</span></a></span><span> </span><span id="local-6989586621681089071"><span class="annot"><span class="annottext">FieldLabelString
</span><a href="#local-6989586621681089071"><span class="hs-identifier hs-var">fs</span></a></span></span><span> </span><span id="local-6989586621681089070"><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681089070"><span class="hs-identifier hs-var">ty</span></a></span></span><span> </span><span id="local-6989586621681089069"><span class="annot"><span class="annottext">IfaceIdInfo
</span><a href="#local-6989586621681089069"><span class="hs-identifier hs-var">info</span></a></span></span><span> </span><span id="local-6989586621681089068"><span class="annot"><span class="annottext">IfaceJoinInfo
</span><a href="#local-6989586621681089068"><span class="hs-identifier hs-var">jpi</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-666"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FieldLabelString
-&gt; IfaceType -&gt; IfaceIdInfo -&gt; IfaceJoinInfo -&gt; IfaceLetBndr
</span><a href="GHC.Iface.Syntax.html#IfLetBndr"><span class="hs-identifier hs-var">IfLetBndr</span></a></span><span> </span><span class="annot"><span class="annottext">FieldLabelString
</span><a href="#local-6989586621681089071"><span class="hs-identifier hs-var">fs</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceType -&gt; IfaceIdInfo -&gt; IfaceJoinInfo -&gt; IfaceLetBndr)
-&gt; IOEnv (Env ShIfEnv ()) IfaceType
-&gt; IOEnv
     (Env ShIfEnv ()) (IfaceIdInfo -&gt; IfaceJoinInfo -&gt; IfaceLetBndr)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
</span><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681089070"><span class="hs-identifier hs-var">ty</span></a></span><span> </span><span class="annot"><span class="annottext">IOEnv
  (Env ShIfEnv ()) (IfaceIdInfo -&gt; IfaceJoinInfo -&gt; IfaceLetBndr)
-&gt; IOEnv (Env ShIfEnv ()) IfaceIdInfo
-&gt; IOEnv (Env ShIfEnv ()) (IfaceJoinInfo -&gt; IfaceLetBndr)
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceIdInfo
</span><a href="GHC.Iface.Rename.html#rnIfaceIdInfo"><span class="hs-identifier hs-var">rnIfaceIdInfo</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceIdInfo
</span><a href="#local-6989586621681089069"><span class="hs-identifier hs-var">info</span></a></span><span> </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) (IfaceJoinInfo -&gt; IfaceLetBndr)
-&gt; IOEnv (Env ShIfEnv ()) IfaceJoinInfo
-&gt; IOEnv (Env ShIfEnv ()) IfaceLetBndr
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceJoinInfo -&gt; IOEnv (Env ShIfEnv ()) IfaceJoinInfo
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceJoinInfo
</span><a href="#local-6989586621681089068"><span class="hs-identifier hs-var">jpi</span></a></span><span>
</span><span id="line-667"></span><span>
</span><span id="line-668"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceLamBndr"><span class="hs-identifier hs-type">rnIfaceLamBndr</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#Rename"><span class="hs-identifier hs-type">Rename</span></a></span><span> </span><span class="annot"><a href="GHC.Iface.Type.html#IfaceLamBndr"><span class="hs-identifier hs-type">IfaceLamBndr</span></a></span><span>
</span><span id="line-669"></span><span id="rnIfaceLamBndr"><span class="annot"><span class="annottext">rnIfaceLamBndr :: Rename IfaceLamBndr
</span><a href="GHC.Iface.Rename.html#rnIfaceLamBndr"><span class="hs-identifier hs-var hs-var">rnIfaceLamBndr</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621681089067"><span class="annot"><span class="annottext">IfaceBndr
</span><a href="#local-6989586621681089067"><span class="hs-identifier hs-var">bndr</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621681089066"><span class="annot"><span class="annottext">IfaceOneShot
</span><a href="#local-6989586621681089066"><span class="hs-identifier hs-var">oneshot</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="hs-special">,</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(IfaceBndr -&gt; IfaceOneShot -&gt; IfaceLamBndr)
-&gt; IOEnv (Env ShIfEnv ()) IfaceBndr
-&gt; IOEnv (Env ShIfEnv ()) (IfaceOneShot -&gt; IfaceLamBndr)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceBndr -&gt; IOEnv (Env ShIfEnv ()) IfaceBndr
</span><a href="GHC.Iface.Rename.html#rnIfaceBndr"><span class="hs-identifier hs-var">rnIfaceBndr</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceBndr
</span><a href="#local-6989586621681089067"><span class="hs-identifier hs-var">bndr</span></a></span><span> </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) (IfaceOneShot -&gt; IfaceLamBndr)
-&gt; IOEnv (Env ShIfEnv ()) IfaceOneShot
-&gt; IOEnv (Env ShIfEnv ()) IfaceLamBndr
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceOneShot -&gt; IOEnv (Env ShIfEnv ()) IfaceOneShot
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceOneShot
</span><a href="#local-6989586621681089066"><span class="hs-identifier hs-var">oneshot</span></a></span><span>
</span><span id="line-670"></span><span>
</span><span id="line-671"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceMCo"><span class="hs-identifier hs-type">rnIfaceMCo</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#Rename"><span class="hs-identifier hs-type">Rename</span></a></span><span> </span><span class="annot"><a href="GHC.Iface.Type.html#IfaceMCoercion"><span class="hs-identifier hs-type">IfaceMCoercion</span></a></span><span>
</span><span id="line-672"></span><span id="rnIfaceMCo"><span class="annot"><span class="annottext">rnIfaceMCo :: Rename IfaceMCoercion
</span><a href="GHC.Iface.Rename.html#rnIfaceMCo"><span class="hs-identifier hs-var hs-var">rnIfaceMCo</span></a></span></span><span> </span><span class="annot"><span class="annottext">IfaceMCoercion
</span><a href="GHC.Iface.Type.html#IfaceMRefl"><span class="hs-identifier hs-var">IfaceMRefl</span></a></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Rename IfaceMCoercion
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceMCoercion
</span><a href="GHC.Iface.Type.html#IfaceMRefl"><span class="hs-identifier hs-var">IfaceMRefl</span></a></span><span>
</span><span id="line-673"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceMCo"><span class="hs-identifier hs-var">rnIfaceMCo</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Type.html#IfaceMCo"><span class="hs-identifier hs-type">IfaceMCo</span></a></span><span> </span><span id="local-6989586621681089062"><span class="annot"><span class="annottext">IfaceCoercion
</span><a href="#local-6989586621681089062"><span class="hs-identifier hs-var">co</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceCoercion -&gt; IfaceMCoercion
</span><a href="GHC.Iface.Type.html#IfaceMCo"><span class="hs-identifier hs-var">IfaceMCo</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceCoercion -&gt; IfaceMCoercion)
-&gt; IOEnv (Env ShIfEnv ()) IfaceCoercion
-&gt; IOEnv (Env ShIfEnv ()) IfaceMCoercion
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceCoercion
</span><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-var">rnIfaceCo</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceCoercion
</span><a href="#local-6989586621681089062"><span class="hs-identifier hs-var">co</span></a></span><span>
</span><span id="line-674"></span><span>
</span><span id="line-675"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-type">rnIfaceCo</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#Rename"><span class="hs-identifier hs-type">Rename</span></a></span><span> </span><span class="annot"><a href="GHC.Iface.Type.html#IfaceCoercion"><span class="hs-identifier hs-type">IfaceCoercion</span></a></span><span>
</span><span id="line-676"></span><span id="rnIfaceCo"><span class="annot"><span class="annottext">rnIfaceCo :: Rename IfaceCoercion
</span><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-var hs-var">rnIfaceCo</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Type.html#IfaceReflCo"><span class="hs-identifier hs-type">IfaceReflCo</span></a></span><span> </span><span id="local-6989586621681089060"><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681089060"><span class="hs-identifier hs-var">ty</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceType -&gt; IfaceCoercion
</span><a href="GHC.Iface.Type.html#IfaceReflCo"><span class="hs-identifier hs-var">IfaceReflCo</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceType -&gt; IfaceCoercion)
-&gt; IOEnv (Env ShIfEnv ()) IfaceType
-&gt; IOEnv (Env ShIfEnv ()) IfaceCoercion
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
</span><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681089060"><span class="hs-identifier hs-var">ty</span></a></span><span>
</span><span id="line-677"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-var">rnIfaceCo</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Type.html#IfaceGReflCo"><span class="hs-identifier hs-type">IfaceGReflCo</span></a></span><span> </span><span id="local-6989586621681089058"><span class="annot"><span class="annottext">Role
</span><a href="#local-6989586621681089058"><span class="hs-keyword hs-var">role</span></a></span></span><span> </span><span id="local-6989586621681089057"><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681089057"><span class="hs-identifier hs-var">ty</span></a></span></span><span> </span><span id="local-6989586621681089056"><span class="annot"><span class="annottext">IfaceMCoercion
</span><a href="#local-6989586621681089056"><span class="hs-identifier hs-var">mco</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-678"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Role -&gt; IfaceType -&gt; IfaceMCoercion -&gt; IfaceCoercion
</span><a href="GHC.Iface.Type.html#IfaceGReflCo"><span class="hs-identifier hs-var">IfaceGReflCo</span></a></span><span> </span><span class="annot"><span class="annottext">Role
</span><a href="#local-6989586621681089058"><span class="hs-keyword hs-var">role</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceType -&gt; IfaceMCoercion -&gt; IfaceCoercion)
-&gt; IOEnv (Env ShIfEnv ()) IfaceType
-&gt; IOEnv (Env ShIfEnv ()) (IfaceMCoercion -&gt; IfaceCoercion)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
</span><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681089057"><span class="hs-identifier hs-var">ty</span></a></span><span> </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) (IfaceMCoercion -&gt; IfaceCoercion)
-&gt; IOEnv (Env ShIfEnv ()) IfaceMCoercion
-&gt; IOEnv (Env ShIfEnv ()) IfaceCoercion
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceMCoercion
</span><a href="GHC.Iface.Rename.html#rnIfaceMCo"><span class="hs-identifier hs-var">rnIfaceMCo</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceMCoercion
</span><a href="#local-6989586621681089056"><span class="hs-identifier hs-var">mco</span></a></span><span>
</span><span id="line-679"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-var">rnIfaceCo</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Type.html#IfaceFunCo"><span class="hs-identifier hs-type">IfaceFunCo</span></a></span><span> </span><span id="local-6989586621681089054"><span class="annot"><span class="annottext">Role
</span><a href="#local-6989586621681089054"><span class="hs-keyword hs-var">role</span></a></span></span><span> </span><span id="local-6989586621681089053"><span class="annot"><span class="annottext">IfaceCoercion
</span><a href="#local-6989586621681089053"><span class="hs-identifier hs-var">w</span></a></span></span><span> </span><span id="local-6989586621681089052"><span class="annot"><span class="annottext">IfaceCoercion
</span><a href="#local-6989586621681089052"><span class="hs-identifier hs-var">co1</span></a></span></span><span> </span><span id="local-6989586621681089051"><span class="annot"><span class="annottext">IfaceCoercion
</span><a href="#local-6989586621681089051"><span class="hs-identifier hs-var">co2</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-680"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Role
-&gt; IfaceCoercion -&gt; IfaceCoercion -&gt; IfaceCoercion -&gt; IfaceCoercion
</span><a href="GHC.Iface.Type.html#IfaceFunCo"><span class="hs-identifier hs-var">IfaceFunCo</span></a></span><span> </span><span class="annot"><span class="annottext">Role
</span><a href="#local-6989586621681089054"><span class="hs-keyword hs-var">role</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceCoercion -&gt; IfaceCoercion -&gt; IfaceCoercion -&gt; IfaceCoercion)
-&gt; IOEnv (Env ShIfEnv ()) IfaceCoercion
-&gt; IOEnv
     (Env ShIfEnv ()) (IfaceCoercion -&gt; IfaceCoercion -&gt; IfaceCoercion)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceCoercion
</span><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-var">rnIfaceCo</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceCoercion
</span><a href="#local-6989586621681089053"><span class="hs-identifier hs-var">w</span></a></span><span> </span><span class="annot"><span class="annottext">IOEnv
  (Env ShIfEnv ()) (IfaceCoercion -&gt; IfaceCoercion -&gt; IfaceCoercion)
-&gt; IOEnv (Env ShIfEnv ()) IfaceCoercion
-&gt; IOEnv (Env ShIfEnv ()) (IfaceCoercion -&gt; IfaceCoercion)
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceCoercion
</span><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-var">rnIfaceCo</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceCoercion
</span><a href="#local-6989586621681089052"><span class="hs-identifier hs-var">co1</span></a></span><span> </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) (IfaceCoercion -&gt; IfaceCoercion)
-&gt; IOEnv (Env ShIfEnv ()) IfaceCoercion
-&gt; IOEnv (Env ShIfEnv ()) IfaceCoercion
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceCoercion
</span><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-var">rnIfaceCo</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceCoercion
</span><a href="#local-6989586621681089051"><span class="hs-identifier hs-var">co2</span></a></span><span>
</span><span id="line-681"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-var">rnIfaceCo</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Type.html#IfaceTyConAppCo"><span class="hs-identifier hs-type">IfaceTyConAppCo</span></a></span><span> </span><span id="local-6989586621681089049"><span class="annot"><span class="annottext">Role
</span><a href="#local-6989586621681089049"><span class="hs-keyword hs-var">role</span></a></span></span><span> </span><span id="local-6989586621681089048"><span class="annot"><span class="annottext">IfaceTyCon
</span><a href="#local-6989586621681089048"><span class="hs-identifier hs-var">tc</span></a></span></span><span> </span><span id="local-6989586621681089047"><span class="annot"><span class="annottext">[IfaceCoercion]
</span><a href="#local-6989586621681089047"><span class="hs-identifier hs-var">cos</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-682"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Role -&gt; IfaceTyCon -&gt; [IfaceCoercion] -&gt; IfaceCoercion
</span><a href="GHC.Iface.Type.html#IfaceTyConAppCo"><span class="hs-identifier hs-var">IfaceTyConAppCo</span></a></span><span> </span><span class="annot"><span class="annottext">Role
</span><a href="#local-6989586621681089049"><span class="hs-keyword hs-var">role</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceTyCon -&gt; [IfaceCoercion] -&gt; IfaceCoercion)
-&gt; IOEnv (Env ShIfEnv ()) IfaceTyCon
-&gt; IOEnv (Env ShIfEnv ()) ([IfaceCoercion] -&gt; IfaceCoercion)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceTyCon
</span><a href="GHC.Iface.Rename.html#rnIfaceTyCon"><span class="hs-identifier hs-var">rnIfaceTyCon</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceTyCon
</span><a href="#local-6989586621681089048"><span class="hs-identifier hs-var">tc</span></a></span><span> </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) ([IfaceCoercion] -&gt; IfaceCoercion)
-&gt; IOEnv (Env ShIfEnv ()) [IfaceCoercion]
-&gt; IOEnv (Env ShIfEnv ()) IfaceCoercion
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceCoercion
-&gt; [IfaceCoercion] -&gt; IOEnv (Env ShIfEnv ()) [IfaceCoercion]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceCoercion
</span><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-var">rnIfaceCo</span></a></span><span> </span><span class="annot"><span class="annottext">[IfaceCoercion]
</span><a href="#local-6989586621681089047"><span class="hs-identifier hs-var">cos</span></a></span><span>
</span><span id="line-683"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-var">rnIfaceCo</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Type.html#IfaceAppCo"><span class="hs-identifier hs-type">IfaceAppCo</span></a></span><span> </span><span id="local-6989586621681089045"><span class="annot"><span class="annottext">IfaceCoercion
</span><a href="#local-6989586621681089045"><span class="hs-identifier hs-var">co1</span></a></span></span><span> </span><span id="local-6989586621681089044"><span class="annot"><span class="annottext">IfaceCoercion
</span><a href="#local-6989586621681089044"><span class="hs-identifier hs-var">co2</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-684"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceCoercion -&gt; IfaceCoercion -&gt; IfaceCoercion
</span><a href="GHC.Iface.Type.html#IfaceAppCo"><span class="hs-identifier hs-var">IfaceAppCo</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceCoercion -&gt; IfaceCoercion -&gt; IfaceCoercion)
-&gt; IOEnv (Env ShIfEnv ()) IfaceCoercion
-&gt; IOEnv (Env ShIfEnv ()) (IfaceCoercion -&gt; IfaceCoercion)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceCoercion
</span><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-var">rnIfaceCo</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceCoercion
</span><a href="#local-6989586621681089045"><span class="hs-identifier hs-var">co1</span></a></span><span> </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) (IfaceCoercion -&gt; IfaceCoercion)
-&gt; IOEnv (Env ShIfEnv ()) IfaceCoercion
-&gt; IOEnv (Env ShIfEnv ()) IfaceCoercion
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceCoercion
</span><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-var">rnIfaceCo</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceCoercion
</span><a href="#local-6989586621681089044"><span class="hs-identifier hs-var">co2</span></a></span><span>
</span><span id="line-685"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-var">rnIfaceCo</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Type.html#IfaceForAllCo"><span class="hs-identifier hs-type">IfaceForAllCo</span></a></span><span> </span><span id="local-6989586621681089042"><span class="annot"><span class="annottext">IfaceBndr
</span><a href="#local-6989586621681089042"><span class="hs-identifier hs-var">bndr</span></a></span></span><span> </span><span id="local-6989586621681089041"><span class="annot"><span class="annottext">IfaceCoercion
</span><a href="#local-6989586621681089041"><span class="hs-identifier hs-var">co1</span></a></span></span><span> </span><span id="local-6989586621681089040"><span class="annot"><span class="annottext">IfaceCoercion
</span><a href="#local-6989586621681089040"><span class="hs-identifier hs-var">co2</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-686"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceBndr -&gt; IfaceCoercion -&gt; IfaceCoercion -&gt; IfaceCoercion
</span><a href="GHC.Iface.Type.html#IfaceForAllCo"><span class="hs-identifier hs-var">IfaceForAllCo</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceBndr -&gt; IfaceCoercion -&gt; IfaceCoercion -&gt; IfaceCoercion)
-&gt; IOEnv (Env ShIfEnv ()) IfaceBndr
-&gt; IOEnv
     (Env ShIfEnv ()) (IfaceCoercion -&gt; IfaceCoercion -&gt; IfaceCoercion)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceBndr -&gt; IOEnv (Env ShIfEnv ()) IfaceBndr
</span><a href="GHC.Iface.Rename.html#rnIfaceBndr"><span class="hs-identifier hs-var">rnIfaceBndr</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceBndr
</span><a href="#local-6989586621681089042"><span class="hs-identifier hs-var">bndr</span></a></span><span> </span><span class="annot"><span class="annottext">IOEnv
  (Env ShIfEnv ()) (IfaceCoercion -&gt; IfaceCoercion -&gt; IfaceCoercion)
-&gt; IOEnv (Env ShIfEnv ()) IfaceCoercion
-&gt; IOEnv (Env ShIfEnv ()) (IfaceCoercion -&gt; IfaceCoercion)
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceCoercion
</span><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-var">rnIfaceCo</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceCoercion
</span><a href="#local-6989586621681089041"><span class="hs-identifier hs-var">co1</span></a></span><span> </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) (IfaceCoercion -&gt; IfaceCoercion)
-&gt; IOEnv (Env ShIfEnv ()) IfaceCoercion
-&gt; IOEnv (Env ShIfEnv ()) IfaceCoercion
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceCoercion
</span><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-var">rnIfaceCo</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceCoercion
</span><a href="#local-6989586621681089040"><span class="hs-identifier hs-var">co2</span></a></span><span>
</span><span id="line-687"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-var">rnIfaceCo</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Type.html#IfaceFreeCoVar"><span class="hs-identifier hs-type">IfaceFreeCoVar</span></a></span><span> </span><span id="local-6989586621681089038"><span class="annot"><span class="annottext">CoVar
</span><a href="#local-6989586621681089038"><span class="hs-identifier hs-var">c</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Rename IfaceCoercion
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CoVar -&gt; IfaceCoercion
</span><a href="GHC.Iface.Type.html#IfaceFreeCoVar"><span class="hs-identifier hs-var">IfaceFreeCoVar</span></a></span><span> </span><span class="annot"><span class="annottext">CoVar
</span><a href="#local-6989586621681089038"><span class="hs-identifier hs-var">c</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-688"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-var">rnIfaceCo</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Type.html#IfaceCoVarCo"><span class="hs-identifier hs-type">IfaceCoVarCo</span></a></span><span> </span><span id="local-6989586621681089036"><span class="annot"><span class="annottext">FieldLabelString
</span><a href="#local-6989586621681089036"><span class="hs-identifier hs-var">lcl</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FieldLabelString -&gt; IfaceCoercion
</span><a href="GHC.Iface.Type.html#IfaceCoVarCo"><span class="hs-identifier hs-var">IfaceCoVarCo</span></a></span><span> </span><span class="annot"><span class="annottext">(FieldLabelString -&gt; IfaceCoercion)
-&gt; IOEnv (Env ShIfEnv ()) FieldLabelString
-&gt; IOEnv (Env ShIfEnv ()) IfaceCoercion
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">FieldLabelString -&gt; IOEnv (Env ShIfEnv ()) FieldLabelString
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="annot"><span class="annottext">FieldLabelString
</span><a href="#local-6989586621681089036"><span class="hs-identifier hs-var">lcl</span></a></span><span>
</span><span id="line-689"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-var">rnIfaceCo</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Type.html#IfaceHoleCo"><span class="hs-identifier hs-type">IfaceHoleCo</span></a></span><span> </span><span id="local-6989586621681089034"><span class="annot"><span class="annottext">CoVar
</span><a href="#local-6989586621681089034"><span class="hs-identifier hs-var">lcl</span></a></span></span><span class="hs-special">)</span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">CoVar -&gt; IfaceCoercion
</span><a href="GHC.Iface.Type.html#IfaceHoleCo"><span class="hs-identifier hs-var">IfaceHoleCo</span></a></span><span>  </span><span class="annot"><span class="annottext">(CoVar -&gt; IfaceCoercion)
-&gt; IOEnv (Env ShIfEnv ()) CoVar
-&gt; IOEnv (Env ShIfEnv ()) IfaceCoercion
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">CoVar -&gt; IOEnv (Env ShIfEnv ()) CoVar
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="annot"><span class="annottext">CoVar
</span><a href="#local-6989586621681089034"><span class="hs-identifier hs-var">lcl</span></a></span><span>
</span><span id="line-690"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-var">rnIfaceCo</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Type.html#IfaceAxiomInstCo"><span class="hs-identifier hs-type">IfaceAxiomInstCo</span></a></span><span> </span><span id="local-6989586621681089032"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089032"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span id="local-6989586621681089031"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681089031"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span id="local-6989586621681089030"><span class="annot"><span class="annottext">[IfaceCoercion]
</span><a href="#local-6989586621681089030"><span class="hs-identifier hs-var">cs</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-691"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Name -&gt; Int -&gt; [IfaceCoercion] -&gt; IfaceCoercion
</span><a href="GHC.Iface.Type.html#IfaceAxiomInstCo"><span class="hs-identifier hs-var">IfaceAxiomInstCo</span></a></span><span> </span><span class="annot"><span class="annottext">(Name -&gt; Int -&gt; [IfaceCoercion] -&gt; IfaceCoercion)
-&gt; IOEnv (Env ShIfEnv ()) Name
-&gt; IOEnv (Env ShIfEnv ()) (Int -&gt; [IfaceCoercion] -&gt; IfaceCoercion)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; IOEnv (Env ShIfEnv ()) Name
</span><a href="GHC.Iface.Rename.html#rnIfaceGlobal"><span class="hs-identifier hs-var">rnIfaceGlobal</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089032"><span class="hs-identifier hs-var">n</span></a></span><span> </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) (Int -&gt; [IfaceCoercion] -&gt; IfaceCoercion)
-&gt; IOEnv (Env ShIfEnv ()) Int
-&gt; IOEnv (Env ShIfEnv ()) ([IfaceCoercion] -&gt; IfaceCoercion)
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; IOEnv (Env ShIfEnv ()) Int
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681089031"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) ([IfaceCoercion] -&gt; IfaceCoercion)
-&gt; IOEnv (Env ShIfEnv ()) [IfaceCoercion]
-&gt; IOEnv (Env ShIfEnv ()) IfaceCoercion
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceCoercion
-&gt; [IfaceCoercion] -&gt; IOEnv (Env ShIfEnv ()) [IfaceCoercion]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceCoercion
</span><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-var">rnIfaceCo</span></a></span><span> </span><span class="annot"><span class="annottext">[IfaceCoercion]
</span><a href="#local-6989586621681089030"><span class="hs-identifier hs-var">cs</span></a></span><span>
</span><span id="line-692"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-var">rnIfaceCo</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Type.html#IfaceUnivCo"><span class="hs-identifier hs-type">IfaceUnivCo</span></a></span><span> </span><span id="local-6989586621681089028"><span class="annot"><span class="annottext">IfaceUnivCoProv
</span><a href="#local-6989586621681089028"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span id="local-6989586621681089027"><span class="annot"><span class="annottext">Role
</span><a href="#local-6989586621681089027"><span class="hs-identifier hs-var">r</span></a></span></span><span> </span><span id="local-6989586621681089026"><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681089026"><span class="hs-identifier hs-var">t1</span></a></span></span><span> </span><span id="local-6989586621681089025"><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681089025"><span class="hs-identifier hs-var">t2</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-693"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceUnivCoProv -&gt; Role -&gt; IfaceType -&gt; IfaceType -&gt; IfaceCoercion
</span><a href="GHC.Iface.Type.html#IfaceUnivCo"><span class="hs-identifier hs-var">IfaceUnivCo</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceUnivCoProv
</span><a href="#local-6989586621681089028"><span class="hs-identifier hs-var">s</span></a></span><span> </span><span class="annot"><span class="annottext">Role
</span><a href="#local-6989586621681089027"><span class="hs-identifier hs-var">r</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceType -&gt; IfaceType -&gt; IfaceCoercion)
-&gt; IOEnv (Env ShIfEnv ()) IfaceType
-&gt; IOEnv (Env ShIfEnv ()) (IfaceType -&gt; IfaceCoercion)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
</span><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681089026"><span class="hs-identifier hs-var">t1</span></a></span><span> </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) (IfaceType -&gt; IfaceCoercion)
-&gt; IOEnv (Env ShIfEnv ()) IfaceType
-&gt; IOEnv (Env ShIfEnv ()) IfaceCoercion
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
</span><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681089025"><span class="hs-identifier hs-var">t2</span></a></span><span>
</span><span id="line-694"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-var">rnIfaceCo</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Type.html#IfaceSymCo"><span class="hs-identifier hs-type">IfaceSymCo</span></a></span><span> </span><span id="local-6989586621681089023"><span class="annot"><span class="annottext">IfaceCoercion
</span><a href="#local-6989586621681089023"><span class="hs-identifier hs-var">c</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-695"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceCoercion -&gt; IfaceCoercion
</span><a href="GHC.Iface.Type.html#IfaceSymCo"><span class="hs-identifier hs-var">IfaceSymCo</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceCoercion -&gt; IfaceCoercion)
-&gt; IOEnv (Env ShIfEnv ()) IfaceCoercion
-&gt; IOEnv (Env ShIfEnv ()) IfaceCoercion
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceCoercion
</span><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-var">rnIfaceCo</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceCoercion
</span><a href="#local-6989586621681089023"><span class="hs-identifier hs-var">c</span></a></span><span>
</span><span id="line-696"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-var">rnIfaceCo</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Type.html#IfaceTransCo"><span class="hs-identifier hs-type">IfaceTransCo</span></a></span><span> </span><span id="local-6989586621681089021"><span class="annot"><span class="annottext">IfaceCoercion
</span><a href="#local-6989586621681089021"><span class="hs-identifier hs-var">c1</span></a></span></span><span> </span><span id="local-6989586621681089020"><span class="annot"><span class="annottext">IfaceCoercion
</span><a href="#local-6989586621681089020"><span class="hs-identifier hs-var">c2</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-697"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceCoercion -&gt; IfaceCoercion -&gt; IfaceCoercion
</span><a href="GHC.Iface.Type.html#IfaceTransCo"><span class="hs-identifier hs-var">IfaceTransCo</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceCoercion -&gt; IfaceCoercion -&gt; IfaceCoercion)
-&gt; IOEnv (Env ShIfEnv ()) IfaceCoercion
-&gt; IOEnv (Env ShIfEnv ()) (IfaceCoercion -&gt; IfaceCoercion)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceCoercion
</span><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-var">rnIfaceCo</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceCoercion
</span><a href="#local-6989586621681089021"><span class="hs-identifier hs-var">c1</span></a></span><span> </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) (IfaceCoercion -&gt; IfaceCoercion)
-&gt; IOEnv (Env ShIfEnv ()) IfaceCoercion
-&gt; IOEnv (Env ShIfEnv ()) IfaceCoercion
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceCoercion
</span><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-var">rnIfaceCo</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceCoercion
</span><a href="#local-6989586621681089020"><span class="hs-identifier hs-var">c2</span></a></span><span>
</span><span id="line-698"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-var">rnIfaceCo</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Type.html#IfaceInstCo"><span class="hs-identifier hs-type">IfaceInstCo</span></a></span><span> </span><span id="local-6989586621681089018"><span class="annot"><span class="annottext">IfaceCoercion
</span><a href="#local-6989586621681089018"><span class="hs-identifier hs-var">c1</span></a></span></span><span> </span><span id="local-6989586621681089017"><span class="annot"><span class="annottext">IfaceCoercion
</span><a href="#local-6989586621681089017"><span class="hs-identifier hs-var">c2</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-699"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceCoercion -&gt; IfaceCoercion -&gt; IfaceCoercion
</span><a href="GHC.Iface.Type.html#IfaceInstCo"><span class="hs-identifier hs-var">IfaceInstCo</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceCoercion -&gt; IfaceCoercion -&gt; IfaceCoercion)
-&gt; IOEnv (Env ShIfEnv ()) IfaceCoercion
-&gt; IOEnv (Env ShIfEnv ()) (IfaceCoercion -&gt; IfaceCoercion)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceCoercion
</span><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-var">rnIfaceCo</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceCoercion
</span><a href="#local-6989586621681089018"><span class="hs-identifier hs-var">c1</span></a></span><span> </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) (IfaceCoercion -&gt; IfaceCoercion)
-&gt; IOEnv (Env ShIfEnv ()) IfaceCoercion
-&gt; IOEnv (Env ShIfEnv ()) IfaceCoercion
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceCoercion
</span><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-var">rnIfaceCo</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceCoercion
</span><a href="#local-6989586621681089017"><span class="hs-identifier hs-var">c2</span></a></span><span>
</span><span id="line-700"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-var">rnIfaceCo</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Type.html#IfaceNthCo"><span class="hs-identifier hs-type">IfaceNthCo</span></a></span><span> </span><span id="local-6989586621681089015"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681089015"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span id="local-6989586621681089014"><span class="annot"><span class="annottext">IfaceCoercion
</span><a href="#local-6989586621681089014"><span class="hs-identifier hs-var">c</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; IfaceCoercion -&gt; IfaceCoercion
</span><a href="GHC.Iface.Type.html#IfaceNthCo"><span class="hs-identifier hs-var">IfaceNthCo</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681089015"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceCoercion -&gt; IfaceCoercion)
-&gt; IOEnv (Env ShIfEnv ()) IfaceCoercion
-&gt; IOEnv (Env ShIfEnv ()) IfaceCoercion
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceCoercion
</span><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-var">rnIfaceCo</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceCoercion
</span><a href="#local-6989586621681089014"><span class="hs-identifier hs-var">c</span></a></span><span>
</span><span id="line-701"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-var">rnIfaceCo</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Type.html#IfaceLRCo"><span class="hs-identifier hs-type">IfaceLRCo</span></a></span><span> </span><span id="local-6989586621681089012"><span class="annot"><span class="annottext">LeftOrRight
</span><a href="#local-6989586621681089012"><span class="hs-identifier hs-var">lr</span></a></span></span><span> </span><span id="local-6989586621681089011"><span class="annot"><span class="annottext">IfaceCoercion
</span><a href="#local-6989586621681089011"><span class="hs-identifier hs-var">c</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LeftOrRight -&gt; IfaceCoercion -&gt; IfaceCoercion
</span><a href="GHC.Iface.Type.html#IfaceLRCo"><span class="hs-identifier hs-var">IfaceLRCo</span></a></span><span> </span><span class="annot"><span class="annottext">LeftOrRight
</span><a href="#local-6989586621681089012"><span class="hs-identifier hs-var">lr</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceCoercion -&gt; IfaceCoercion)
-&gt; IOEnv (Env ShIfEnv ()) IfaceCoercion
-&gt; IOEnv (Env ShIfEnv ()) IfaceCoercion
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceCoercion
</span><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-var">rnIfaceCo</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceCoercion
</span><a href="#local-6989586621681089011"><span class="hs-identifier hs-var">c</span></a></span><span>
</span><span id="line-702"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-var">rnIfaceCo</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Type.html#IfaceSubCo"><span class="hs-identifier hs-type">IfaceSubCo</span></a></span><span> </span><span id="local-6989586621681089009"><span class="annot"><span class="annottext">IfaceCoercion
</span><a href="#local-6989586621681089009"><span class="hs-identifier hs-var">c</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceCoercion -&gt; IfaceCoercion
</span><a href="GHC.Iface.Type.html#IfaceSubCo"><span class="hs-identifier hs-var">IfaceSubCo</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceCoercion -&gt; IfaceCoercion)
-&gt; IOEnv (Env ShIfEnv ()) IfaceCoercion
-&gt; IOEnv (Env ShIfEnv ()) IfaceCoercion
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceCoercion
</span><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-var">rnIfaceCo</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceCoercion
</span><a href="#local-6989586621681089009"><span class="hs-identifier hs-var">c</span></a></span><span>
</span><span id="line-703"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-var">rnIfaceCo</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Type.html#IfaceAxiomRuleCo"><span class="hs-identifier hs-type">IfaceAxiomRuleCo</span></a></span><span> </span><span id="local-6989586621681089007"><span class="annot"><span class="annottext">FieldLabelString
</span><a href="#local-6989586621681089007"><span class="hs-identifier hs-var">ax</span></a></span></span><span> </span><span id="local-6989586621681089006"><span class="annot"><span class="annottext">[IfaceCoercion]
</span><a href="#local-6989586621681089006"><span class="hs-identifier hs-var">cos</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-704"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FieldLabelString -&gt; [IfaceCoercion] -&gt; IfaceCoercion
</span><a href="GHC.Iface.Type.html#IfaceAxiomRuleCo"><span class="hs-identifier hs-var">IfaceAxiomRuleCo</span></a></span><span> </span><span class="annot"><span class="annottext">FieldLabelString
</span><a href="#local-6989586621681089007"><span class="hs-identifier hs-var">ax</span></a></span><span> </span><span class="annot"><span class="annottext">([IfaceCoercion] -&gt; IfaceCoercion)
-&gt; IOEnv (Env ShIfEnv ()) [IfaceCoercion]
-&gt; IOEnv (Env ShIfEnv ()) IfaceCoercion
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceCoercion
-&gt; [IfaceCoercion] -&gt; IOEnv (Env ShIfEnv ()) [IfaceCoercion]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceCoercion
</span><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-var">rnIfaceCo</span></a></span><span> </span><span class="annot"><span class="annottext">[IfaceCoercion]
</span><a href="#local-6989586621681089006"><span class="hs-identifier hs-var">cos</span></a></span><span>
</span><span id="line-705"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-var">rnIfaceCo</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Type.html#IfaceKindCo"><span class="hs-identifier hs-type">IfaceKindCo</span></a></span><span> </span><span id="local-6989586621681089004"><span class="annot"><span class="annottext">IfaceCoercion
</span><a href="#local-6989586621681089004"><span class="hs-identifier hs-var">c</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceCoercion -&gt; IfaceCoercion
</span><a href="GHC.Iface.Type.html#IfaceKindCo"><span class="hs-identifier hs-var">IfaceKindCo</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceCoercion -&gt; IfaceCoercion)
-&gt; IOEnv (Env ShIfEnv ()) IfaceCoercion
-&gt; IOEnv (Env ShIfEnv ()) IfaceCoercion
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceCoercion
</span><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-var">rnIfaceCo</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceCoercion
</span><a href="#local-6989586621681089004"><span class="hs-identifier hs-var">c</span></a></span><span>
</span><span id="line-706"></span><span>
</span><span id="line-707"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceTyCon"><span class="hs-identifier hs-type">rnIfaceTyCon</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#Rename"><span class="hs-identifier hs-type">Rename</span></a></span><span> </span><span class="annot"><a href="GHC.Iface.Type.html#IfaceTyCon"><span class="hs-identifier hs-type">IfaceTyCon</span></a></span><span>
</span><span id="line-708"></span><span id="rnIfaceTyCon"><span class="annot"><span class="annottext">rnIfaceTyCon :: Rename IfaceTyCon
</span><a href="GHC.Iface.Rename.html#rnIfaceTyCon"><span class="hs-identifier hs-var hs-var">rnIfaceTyCon</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Type.html#IfaceTyCon"><span class="hs-identifier hs-type">IfaceTyCon</span></a></span><span> </span><span id="local-6989586621681089002"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089002"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span id="local-6989586621681089001"><span class="annot"><span class="annottext">IfaceTyConInfo
</span><a href="#local-6989586621681089001"><span class="hs-identifier hs-var">info</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-709"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Name -&gt; IfaceTyConInfo -&gt; IfaceTyCon
</span><a href="GHC.Iface.Type.html#IfaceTyCon"><span class="hs-identifier hs-var">IfaceTyCon</span></a></span><span> </span><span class="annot"><span class="annottext">(Name -&gt; IfaceTyConInfo -&gt; IfaceTyCon)
-&gt; IOEnv (Env ShIfEnv ()) Name
-&gt; IOEnv (Env ShIfEnv ()) (IfaceTyConInfo -&gt; IfaceTyCon)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; IOEnv (Env ShIfEnv ()) Name
</span><a href="GHC.Iface.Rename.html#rnIfaceGlobal"><span class="hs-identifier hs-var">rnIfaceGlobal</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621681089002"><span class="hs-identifier hs-var">n</span></a></span><span> </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) (IfaceTyConInfo -&gt; IfaceTyCon)
-&gt; IOEnv (Env ShIfEnv ()) IfaceTyConInfo
-&gt; IOEnv (Env ShIfEnv ()) IfaceTyCon
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceTyConInfo -&gt; IOEnv (Env ShIfEnv ()) IfaceTyConInfo
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceTyConInfo
</span><a href="#local-6989586621681089001"><span class="hs-identifier hs-var">info</span></a></span><span>
</span><span id="line-710"></span><span>
</span><span id="line-711"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceExprs"><span class="hs-identifier hs-type">rnIfaceExprs</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#Rename"><span class="hs-identifier hs-type">Rename</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceExpr"><span class="hs-identifier hs-type">IfaceExpr</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-712"></span><span id="rnIfaceExprs"><span class="annot"><span class="annottext">rnIfaceExprs :: [IfaceExpr] -&gt; IOEnv (Env ShIfEnv ()) [IfaceExpr]
</span><a href="GHC.Iface.Rename.html#rnIfaceExprs"><span class="hs-identifier hs-var hs-var">rnIfaceExprs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Rename IfaceExpr
-&gt; [IfaceExpr] -&gt; IOEnv (Env ShIfEnv ()) [IfaceExpr]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceExpr
</span><a href="GHC.Iface.Rename.html#rnIfaceExpr"><span class="hs-identifier hs-var">rnIfaceExpr</span></a></span><span>
</span><span id="line-713"></span><span>
</span><span id="line-714"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceIdDetails"><span class="hs-identifier hs-type">rnIfaceIdDetails</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#Rename"><span class="hs-identifier hs-type">Rename</span></a></span><span> </span><span class="annot"><a href="GHC.Iface.Syntax.html#IfaceIdDetails"><span class="hs-identifier hs-type">IfaceIdDetails</span></a></span><span>
</span><span id="line-715"></span><span id="rnIfaceIdDetails"><span class="annot"><span class="annottext">rnIfaceIdDetails :: Rename IfaceIdDetails
</span><a href="GHC.Iface.Rename.html#rnIfaceIdDetails"><span class="hs-identifier hs-var hs-var">rnIfaceIdDetails</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Syntax.html#IfRecSelId"><span class="hs-identifier hs-type">IfRecSelId</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Data.Either.html#Left"><span class="hs-identifier hs-type">Left</span></a></span><span> </span><span id="local-6989586621681088999"><span class="annot"><span class="annottext">IfaceTyCon
</span><a href="#local-6989586621681088999"><span class="hs-identifier hs-var">tc</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621681088998"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681088998"><span class="hs-identifier hs-var">b</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Either IfaceTyCon IfaceDecl -&gt; Bool -&gt; IfaceIdDetails
</span><a href="GHC.Iface.Syntax.html#IfRecSelId"><span class="hs-identifier hs-var">IfRecSelId</span></a></span><span> </span><span class="annot"><span class="annottext">(Either IfaceTyCon IfaceDecl -&gt; Bool -&gt; IfaceIdDetails)
-&gt; IOEnv (Env ShIfEnv ()) (Either IfaceTyCon IfaceDecl)
-&gt; IOEnv (Env ShIfEnv ()) (Bool -&gt; IfaceIdDetails)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceTyCon -&gt; Either IfaceTyCon IfaceDecl)
-&gt; IOEnv (Env ShIfEnv ()) IfaceTyCon
-&gt; IOEnv (Env ShIfEnv ()) (Either IfaceTyCon IfaceDecl)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#fmap"><span class="hs-identifier hs-var">fmap</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceTyCon -&gt; Either IfaceTyCon IfaceDecl
forall a b. a -&gt; Either a b
</span><a href="../../base/src/Data.Either.html#Left"><span class="hs-identifier hs-var">Left</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Rename IfaceTyCon
</span><a href="GHC.Iface.Rename.html#rnIfaceTyCon"><span class="hs-identifier hs-var">rnIfaceTyCon</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceTyCon
</span><a href="#local-6989586621681088999"><span class="hs-identifier hs-var">tc</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) (Bool -&gt; IfaceIdDetails)
-&gt; IOEnv (Env ShIfEnv ()) Bool
-&gt; IOEnv (Env ShIfEnv ()) IfaceIdDetails
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; IOEnv (Env ShIfEnv ()) Bool
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681088998"><span class="hs-identifier hs-var">b</span></a></span><span>
</span><span id="line-716"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceIdDetails"><span class="hs-identifier hs-var">rnIfaceIdDetails</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Syntax.html#IfRecSelId"><span class="hs-identifier hs-type">IfRecSelId</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Data.Either.html#Right"><span class="hs-identifier hs-type">Right</span></a></span><span> </span><span id="local-6989586621681088997"><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681088997"><span class="hs-identifier hs-var">decl</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621681088996"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681088996"><span class="hs-identifier hs-var">b</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Either IfaceTyCon IfaceDecl -&gt; Bool -&gt; IfaceIdDetails
</span><a href="GHC.Iface.Syntax.html#IfRecSelId"><span class="hs-identifier hs-var">IfRecSelId</span></a></span><span> </span><span class="annot"><span class="annottext">(Either IfaceTyCon IfaceDecl -&gt; Bool -&gt; IfaceIdDetails)
-&gt; IOEnv (Env ShIfEnv ()) (Either IfaceTyCon IfaceDecl)
-&gt; IOEnv (Env ShIfEnv ()) (Bool -&gt; IfaceIdDetails)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceDecl -&gt; Either IfaceTyCon IfaceDecl)
-&gt; IOEnv (Env ShIfEnv ()) IfaceDecl
-&gt; IOEnv (Env ShIfEnv ()) (Either IfaceTyCon IfaceDecl)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#fmap"><span class="hs-identifier hs-var">fmap</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl -&gt; Either IfaceTyCon IfaceDecl
forall a b. b -&gt; Either a b
</span><a href="../../base/src/Data.Either.html#Right"><span class="hs-identifier hs-var">Right</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Rename IfaceDecl
</span><a href="GHC.Iface.Rename.html#rnIfaceDecl"><span class="hs-identifier hs-var">rnIfaceDecl</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceDecl
</span><a href="#local-6989586621681088997"><span class="hs-identifier hs-var">decl</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) (Bool -&gt; IfaceIdDetails)
-&gt; IOEnv (Env ShIfEnv ()) Bool
-&gt; IOEnv (Env ShIfEnv ()) IfaceIdDetails
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; IOEnv (Env ShIfEnv ()) Bool
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681088996"><span class="hs-identifier hs-var">b</span></a></span><span>
</span><span id="line-717"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceIdDetails"><span class="hs-identifier hs-var">rnIfaceIdDetails</span></a></span><span> </span><span id="local-6989586621681088995"><span class="annot"><span class="annottext">IfaceIdDetails
</span><a href="#local-6989586621681088995"><span class="hs-identifier hs-var">details</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Rename IfaceIdDetails
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceIdDetails
</span><a href="#local-6989586621681088995"><span class="hs-identifier hs-var">details</span></a></span><span>
</span><span id="line-718"></span><span>
</span><span id="line-719"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-type">rnIfaceType</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#Rename"><span class="hs-identifier hs-type">Rename</span></a></span><span> </span><span class="annot"><a href="GHC.Iface.Type.html#IfaceType"><span class="hs-identifier hs-type">IfaceType</span></a></span><span>
</span><span id="line-720"></span><span id="rnIfaceType"><span class="annot"><span class="annottext">rnIfaceType :: Rename IfaceType
</span><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var hs-var">rnIfaceType</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Type.html#IfaceFreeTyVar"><span class="hs-identifier hs-type">IfaceFreeTyVar</span></a></span><span> </span><span id="local-6989586621681088993"><span class="annot"><span class="annottext">CoVar
</span><a href="#local-6989586621681088993"><span class="hs-identifier hs-var">n</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CoVar -&gt; IfaceType
</span><a href="GHC.Iface.Type.html#IfaceFreeTyVar"><span class="hs-identifier hs-var">IfaceFreeTyVar</span></a></span><span> </span><span class="annot"><span class="annottext">CoVar
</span><a href="#local-6989586621681088993"><span class="hs-identifier hs-var">n</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-721"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Type.html#IfaceTyVar"><span class="hs-identifier hs-type">IfaceTyVar</span></a></span><span>   </span><span id="local-6989586621681088991"><span class="annot"><span class="annottext">FieldLabelString
</span><a href="#local-6989586621681088991"><span class="hs-identifier hs-var">n</span></a></span></span><span class="hs-special">)</span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">FieldLabelString -&gt; IfaceType
</span><a href="GHC.Iface.Type.html#IfaceTyVar"><span class="hs-identifier hs-var">IfaceTyVar</span></a></span><span> </span><span class="annot"><span class="annottext">FieldLabelString
</span><a href="#local-6989586621681088991"><span class="hs-identifier hs-var">n</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-722"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Type.html#IfaceAppTy"><span class="hs-identifier hs-type">IfaceAppTy</span></a></span><span> </span><span id="local-6989586621681088989"><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681088989"><span class="hs-identifier hs-var">t1</span></a></span></span><span> </span><span id="local-6989586621681088988"><span class="annot"><span class="annottext">IfaceAppArgs
</span><a href="#local-6989586621681088988"><span class="hs-identifier hs-var">t2</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-723"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceType -&gt; IfaceAppArgs -&gt; IfaceType
</span><a href="GHC.Iface.Type.html#IfaceAppTy"><span class="hs-identifier hs-var">IfaceAppTy</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceType -&gt; IfaceAppArgs -&gt; IfaceType)
-&gt; IOEnv (Env ShIfEnv ()) IfaceType
-&gt; IOEnv (Env ShIfEnv ()) (IfaceAppArgs -&gt; IfaceType)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
</span><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681088989"><span class="hs-identifier hs-var">t1</span></a></span><span> </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) (IfaceAppArgs -&gt; IfaceType)
-&gt; IOEnv (Env ShIfEnv ()) IfaceAppArgs
-&gt; IOEnv (Env ShIfEnv ()) IfaceType
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceAppArgs
</span><a href="GHC.Iface.Rename.html#rnIfaceAppArgs"><span class="hs-identifier hs-var">rnIfaceAppArgs</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceAppArgs
</span><a href="#local-6989586621681088988"><span class="hs-identifier hs-var">t2</span></a></span><span>
</span><span id="line-724"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Type.html#IfaceLitTy"><span class="hs-identifier hs-type">IfaceLitTy</span></a></span><span> </span><span id="local-6989586621681088986"><span class="annot"><span class="annottext">IfaceTyLit
</span><a href="#local-6989586621681088986"><span class="hs-identifier hs-var">l</span></a></span></span><span class="hs-special">)</span><span>         </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IfaceTyLit -&gt; IfaceType
</span><a href="GHC.Iface.Type.html#IfaceLitTy"><span class="hs-identifier hs-var">IfaceLitTy</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceTyLit
</span><a href="#local-6989586621681088986"><span class="hs-identifier hs-var">l</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-725"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Type.html#IfaceFunTy"><span class="hs-identifier hs-type">IfaceFunTy</span></a></span><span> </span><span id="local-6989586621681088984"><span class="annot"><span class="annottext">AnonArgFlag
</span><a href="#local-6989586621681088984"><span class="hs-identifier hs-var">af</span></a></span></span><span> </span><span id="local-6989586621681088983"><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681088983"><span class="hs-identifier hs-var">w</span></a></span></span><span> </span><span id="local-6989586621681088982"><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681088982"><span class="hs-identifier hs-var">t1</span></a></span></span><span> </span><span id="local-6989586621681088981"><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681088981"><span class="hs-identifier hs-var">t2</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-726"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">AnonArgFlag -&gt; IfaceType -&gt; IfaceType -&gt; IfaceType -&gt; IfaceType
</span><a href="GHC.Iface.Type.html#IfaceFunTy"><span class="hs-identifier hs-var">IfaceFunTy</span></a></span><span> </span><span class="annot"><span class="annottext">AnonArgFlag
</span><a href="#local-6989586621681088984"><span class="hs-identifier hs-var">af</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceType -&gt; IfaceType -&gt; IfaceType -&gt; IfaceType)
-&gt; IOEnv (Env ShIfEnv ()) IfaceType
-&gt; IOEnv (Env ShIfEnv ()) (IfaceType -&gt; IfaceType -&gt; IfaceType)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
</span><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681088983"><span class="hs-identifier hs-var">w</span></a></span><span> </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) (IfaceType -&gt; IfaceType -&gt; IfaceType)
-&gt; IOEnv (Env ShIfEnv ()) IfaceType
-&gt; IOEnv (Env ShIfEnv ()) (IfaceType -&gt; IfaceType)
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
</span><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681088982"><span class="hs-identifier hs-var">t1</span></a></span><span> </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) (IfaceType -&gt; IfaceType)
-&gt; IOEnv (Env ShIfEnv ()) IfaceType
-&gt; IOEnv (Env ShIfEnv ()) IfaceType
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
</span><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681088981"><span class="hs-identifier hs-var">t2</span></a></span><span>
</span><span id="line-727"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Type.html#IfaceTupleTy"><span class="hs-identifier hs-type">IfaceTupleTy</span></a></span><span> </span><span id="local-6989586621681088979"><span class="annot"><span class="annottext">TupleSort
</span><a href="#local-6989586621681088979"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span id="local-6989586621681088978"><span class="annot"><span class="annottext">PromotionFlag
</span><a href="#local-6989586621681088978"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span id="local-6989586621681088977"><span class="annot"><span class="annottext">IfaceAppArgs
</span><a href="#local-6989586621681088977"><span class="hs-identifier hs-var">tks</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-728"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">TupleSort -&gt; PromotionFlag -&gt; IfaceAppArgs -&gt; IfaceType
</span><a href="GHC.Iface.Type.html#IfaceTupleTy"><span class="hs-identifier hs-var">IfaceTupleTy</span></a></span><span> </span><span class="annot"><span class="annottext">TupleSort
</span><a href="#local-6989586621681088979"><span class="hs-identifier hs-var">s</span></a></span><span> </span><span class="annot"><span class="annottext">PromotionFlag
</span><a href="#local-6989586621681088978"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceAppArgs -&gt; IfaceType)
-&gt; IOEnv (Env ShIfEnv ()) IfaceAppArgs
-&gt; IOEnv (Env ShIfEnv ()) IfaceType
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceAppArgs
</span><a href="GHC.Iface.Rename.html#rnIfaceAppArgs"><span class="hs-identifier hs-var">rnIfaceAppArgs</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceAppArgs
</span><a href="#local-6989586621681088977"><span class="hs-identifier hs-var">tks</span></a></span><span>
</span><span id="line-729"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Type.html#IfaceTyConApp"><span class="hs-identifier hs-type">IfaceTyConApp</span></a></span><span> </span><span id="local-6989586621681088975"><span class="annot"><span class="annottext">IfaceTyCon
</span><a href="#local-6989586621681088975"><span class="hs-identifier hs-var">tc</span></a></span></span><span> </span><span id="local-6989586621681088974"><span class="annot"><span class="annottext">IfaceAppArgs
</span><a href="#local-6989586621681088974"><span class="hs-identifier hs-var">tks</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-730"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceTyCon -&gt; IfaceAppArgs -&gt; IfaceType
</span><a href="GHC.Iface.Type.html#IfaceTyConApp"><span class="hs-identifier hs-var">IfaceTyConApp</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceTyCon -&gt; IfaceAppArgs -&gt; IfaceType)
-&gt; IOEnv (Env ShIfEnv ()) IfaceTyCon
-&gt; IOEnv (Env ShIfEnv ()) (IfaceAppArgs -&gt; IfaceType)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceTyCon
</span><a href="GHC.Iface.Rename.html#rnIfaceTyCon"><span class="hs-identifier hs-var">rnIfaceTyCon</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceTyCon
</span><a href="#local-6989586621681088975"><span class="hs-identifier hs-var">tc</span></a></span><span> </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) (IfaceAppArgs -&gt; IfaceType)
-&gt; IOEnv (Env ShIfEnv ()) IfaceAppArgs
-&gt; IOEnv (Env ShIfEnv ()) IfaceType
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceAppArgs
</span><a href="GHC.Iface.Rename.html#rnIfaceAppArgs"><span class="hs-identifier hs-var">rnIfaceAppArgs</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceAppArgs
</span><a href="#local-6989586621681088974"><span class="hs-identifier hs-var">tks</span></a></span><span>
</span><span id="line-731"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Type.html#IfaceForAllTy"><span class="hs-identifier hs-type">IfaceForAllTy</span></a></span><span> </span><span id="local-6989586621681088972"><span class="annot"><span class="annottext">IfaceForAllBndr
</span><a href="#local-6989586621681088972"><span class="hs-identifier hs-var">tv</span></a></span></span><span> </span><span id="local-6989586621681088971"><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681088971"><span class="hs-identifier hs-var">t</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-732"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceForAllBndr -&gt; IfaceType -&gt; IfaceType
</span><a href="GHC.Iface.Type.html#IfaceForAllTy"><span class="hs-identifier hs-var">IfaceForAllTy</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceForAllBndr -&gt; IfaceType -&gt; IfaceType)
-&gt; IOEnv (Env ShIfEnv ()) IfaceForAllBndr
-&gt; IOEnv (Env ShIfEnv ()) (IfaceType -&gt; IfaceType)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceForAllBndr
forall flag. Rename (VarBndr IfaceBndr flag)
</span><a href="GHC.Iface.Rename.html#rnIfaceForAllBndr"><span class="hs-identifier hs-var">rnIfaceForAllBndr</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceForAllBndr
</span><a href="#local-6989586621681088972"><span class="hs-identifier hs-var">tv</span></a></span><span> </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) (IfaceType -&gt; IfaceType)
-&gt; IOEnv (Env ShIfEnv ()) IfaceType
-&gt; IOEnv (Env ShIfEnv ()) IfaceType
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
</span><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681088971"><span class="hs-identifier hs-var">t</span></a></span><span>
</span><span id="line-733"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Type.html#IfaceCoercionTy"><span class="hs-identifier hs-type">IfaceCoercionTy</span></a></span><span> </span><span id="local-6989586621681088969"><span class="annot"><span class="annottext">IfaceCoercion
</span><a href="#local-6989586621681088969"><span class="hs-identifier hs-var">co</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-734"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceCoercion -&gt; IfaceType
</span><a href="GHC.Iface.Type.html#IfaceCoercionTy"><span class="hs-identifier hs-var">IfaceCoercionTy</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceCoercion -&gt; IfaceType)
-&gt; IOEnv (Env ShIfEnv ()) IfaceCoercion
-&gt; IOEnv (Env ShIfEnv ()) IfaceType
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceCoercion
</span><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-var">rnIfaceCo</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceCoercion
</span><a href="#local-6989586621681088969"><span class="hs-identifier hs-var">co</span></a></span><span>
</span><span id="line-735"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Type.html#IfaceCastTy"><span class="hs-identifier hs-type">IfaceCastTy</span></a></span><span> </span><span id="local-6989586621681088967"><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681088967"><span class="hs-identifier hs-var">ty</span></a></span></span><span> </span><span id="local-6989586621681088966"><span class="annot"><span class="annottext">IfaceCoercion
</span><a href="#local-6989586621681088966"><span class="hs-identifier hs-var">co</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-736"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceType -&gt; IfaceCoercion -&gt; IfaceType
</span><a href="GHC.Iface.Type.html#IfaceCastTy"><span class="hs-identifier hs-var">IfaceCastTy</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceType -&gt; IfaceCoercion -&gt; IfaceType)
-&gt; IOEnv (Env ShIfEnv ()) IfaceType
-&gt; IOEnv (Env ShIfEnv ()) (IfaceCoercion -&gt; IfaceType)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
</span><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681088967"><span class="hs-identifier hs-var">ty</span></a></span><span> </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) (IfaceCoercion -&gt; IfaceType)
-&gt; IOEnv (Env ShIfEnv ()) IfaceCoercion
-&gt; IOEnv (Env ShIfEnv ()) IfaceType
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceCoercion
</span><a href="GHC.Iface.Rename.html#rnIfaceCo"><span class="hs-identifier hs-var">rnIfaceCo</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceCoercion
</span><a href="#local-6989586621681088966"><span class="hs-identifier hs-var">co</span></a></span><span>
</span><span id="line-737"></span><span>
</span><span id="line-738"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceScaledType"><span class="hs-identifier hs-type">rnIfaceScaledType</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#Rename"><span class="hs-identifier hs-type">Rename</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Type.html#IfaceMult"><span class="hs-identifier hs-type">IfaceMult</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Iface.Type.html#IfaceType"><span class="hs-identifier hs-type">IfaceType</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-739"></span><span id="rnIfaceScaledType"><span class="annot"><span class="annottext">rnIfaceScaledType :: (IfaceType, IfaceType)
-&gt; IOEnv (Env ShIfEnv ()) (IfaceType, IfaceType)
</span><a href="GHC.Iface.Rename.html#rnIfaceScaledType"><span class="hs-identifier hs-var hs-var">rnIfaceScaledType</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621681088964"><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681088964"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621681088963"><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681088963"><span class="hs-identifier hs-var">t</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="hs-special">,</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(IfaceType -&gt; IfaceType -&gt; (IfaceType, IfaceType))
-&gt; IOEnv (Env ShIfEnv ()) IfaceType
-&gt; IOEnv (Env ShIfEnv ()) (IfaceType -&gt; (IfaceType, IfaceType))
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
</span><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681088964"><span class="hs-identifier hs-var">m</span></a></span><span> </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) (IfaceType -&gt; (IfaceType, IfaceType))
-&gt; IOEnv (Env ShIfEnv ()) IfaceType
-&gt; IOEnv (Env ShIfEnv ()) (IfaceType, IfaceType)
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
</span><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681088963"><span class="hs-identifier hs-var">t</span></a></span><span>
</span><span id="line-740"></span><span>
</span><span id="line-741"></span><span id="local-6989586621681089991"><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceForAllBndr"><span class="hs-identifier hs-type">rnIfaceForAllBndr</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#Rename"><span class="hs-identifier hs-type">Rename</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Var.html#VarBndr"><span class="hs-identifier hs-type">VarBndr</span></a></span><span> </span><span class="annot"><a href="GHC.Iface.Type.html#IfaceBndr"><span class="hs-identifier hs-type">IfaceBndr</span></a></span><span> </span><span class="annot"><a href="#local-6989586621681089991"><span class="hs-identifier hs-type">flag</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-742"></span><span id="rnIfaceForAllBndr"><span class="annot"><span class="annottext">rnIfaceForAllBndr :: forall flag. Rename (VarBndr IfaceBndr flag)
</span><a href="GHC.Iface.Rename.html#rnIfaceForAllBndr"><span class="hs-identifier hs-var hs-var">rnIfaceForAllBndr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Var.html#Bndr"><span class="hs-identifier hs-type">Bndr</span></a></span><span> </span><span id="local-6989586621681088959"><span class="annot"><span class="annottext">IfaceBndr
</span><a href="#local-6989586621681088959"><span class="hs-identifier hs-var">tv</span></a></span></span><span> </span><span id="local-6989586621681088958"><span class="annot"><span class="annottext">flag
</span><a href="#local-6989586621681088958"><span class="hs-identifier hs-var">vis</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceBndr -&gt; flag -&gt; VarBndr IfaceBndr flag
forall var argf. var -&gt; argf -&gt; VarBndr var argf
</span><a href="GHC.Types.Var.html#Bndr"><span class="hs-identifier hs-var">Bndr</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceBndr -&gt; flag -&gt; VarBndr IfaceBndr flag)
-&gt; IOEnv (Env ShIfEnv ()) IfaceBndr
-&gt; IOEnv (Env ShIfEnv ()) (flag -&gt; VarBndr IfaceBndr flag)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceBndr -&gt; IOEnv (Env ShIfEnv ()) IfaceBndr
</span><a href="GHC.Iface.Rename.html#rnIfaceBndr"><span class="hs-identifier hs-var">rnIfaceBndr</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceBndr
</span><a href="#local-6989586621681088959"><span class="hs-identifier hs-var">tv</span></a></span><span> </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) (flag -&gt; VarBndr IfaceBndr flag)
-&gt; IOEnv (Env ShIfEnv ()) flag
-&gt; IOEnv (Env ShIfEnv ()) (VarBndr IfaceBndr flag)
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">flag -&gt; IOEnv (Env ShIfEnv ()) flag
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="annot"><span class="annottext">flag
</span><a href="#local-6989586621681088958"><span class="hs-identifier hs-var">vis</span></a></span><span>
</span><span id="line-743"></span><span>
</span><span id="line-744"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceAppArgs"><span class="hs-identifier hs-type">rnIfaceAppArgs</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Iface.Rename.html#Rename"><span class="hs-identifier hs-type">Rename</span></a></span><span> </span><span class="annot"><a href="GHC.Iface.Type.html#IfaceAppArgs"><span class="hs-identifier hs-type">IfaceAppArgs</span></a></span><span>
</span><span id="line-745"></span><span id="rnIfaceAppArgs"><span class="annot"><span class="annottext">rnIfaceAppArgs :: Rename IfaceAppArgs
</span><a href="GHC.Iface.Rename.html#rnIfaceAppArgs"><span class="hs-identifier hs-var hs-var">rnIfaceAppArgs</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Iface.Type.html#IA_Arg"><span class="hs-identifier hs-type">IA_Arg</span></a></span><span> </span><span id="local-6989586621681088956"><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681088956"><span class="hs-identifier hs-var">t</span></a></span></span><span> </span><span id="local-6989586621681088955"><span class="annot"><span class="annottext">ArgFlag
</span><a href="#local-6989586621681088955"><span class="hs-identifier hs-var">a</span></a></span></span><span> </span><span id="local-6989586621681088954"><span class="annot"><span class="annottext">IfaceAppArgs
</span><a href="#local-6989586621681088954"><span class="hs-identifier hs-var">ts</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IfaceType -&gt; ArgFlag -&gt; IfaceAppArgs -&gt; IfaceAppArgs
</span><a href="GHC.Iface.Type.html#IA_Arg"><span class="hs-identifier hs-var">IA_Arg</span></a></span><span> </span><span class="annot"><span class="annottext">(IfaceType -&gt; ArgFlag -&gt; IfaceAppArgs -&gt; IfaceAppArgs)
-&gt; IOEnv (Env ShIfEnv ()) IfaceType
-&gt; IOEnv (Env ShIfEnv ()) (ArgFlag -&gt; IfaceAppArgs -&gt; IfaceAppArgs)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceType
</span><a href="GHC.Iface.Rename.html#rnIfaceType"><span class="hs-identifier hs-var">rnIfaceType</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceType
</span><a href="#local-6989586621681088956"><span class="hs-identifier hs-var">t</span></a></span><span> </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) (ArgFlag -&gt; IfaceAppArgs -&gt; IfaceAppArgs)
-&gt; IOEnv (Env ShIfEnv ()) ArgFlag
-&gt; IOEnv (Env ShIfEnv ()) (IfaceAppArgs -&gt; IfaceAppArgs)
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">ArgFlag -&gt; IOEnv (Env ShIfEnv ()) ArgFlag
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="annot"><span class="annottext">ArgFlag
</span><a href="#local-6989586621681088955"><span class="hs-identifier hs-var">a</span></a></span><span>
</span><span id="line-746"></span><span>                                        </span><span class="annot"><span class="annottext">IOEnv (Env ShIfEnv ()) (IfaceAppArgs -&gt; IfaceAppArgs)
-&gt; IOEnv (Env ShIfEnv ()) IfaceAppArgs
-&gt; IOEnv (Env ShIfEnv ()) IfaceAppArgs
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Rename IfaceAppArgs
</span><a href="GHC.Iface.Rename.html#rnIfaceAppArgs"><span class="hs-identifier hs-var">rnIfaceAppArgs</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceAppArgs
</span><a href="#local-6989586621681088954"><span class="hs-identifier hs-var">ts</span></a></span><span>
</span><span id="line-747"></span><span class="annot"><a href="GHC.Iface.Rename.html#rnIfaceAppArgs"><span class="hs-identifier hs-var">rnIfaceAppArgs</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceAppArgs
</span><a href="GHC.Iface.Type.html#IA_Nil"><span class="hs-identifier hs-var">IA_Nil</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Rename IfaceAppArgs
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="annot"><span class="annottext">IfaceAppArgs
</span><a href="GHC.Iface.Type.html#IA_Nil"><span class="hs-identifier hs-var">IA_Nil</span></a></span><span>
</span><span id="line-748"></span></pre></body></html>